मान लीजिए हमारे पास एक संख्या x है, और x एक गैर-ऋणात्मक संख्या है। हमें किसी लाइब्रेरी फंक्शन का उपयोग किए बिना x का वर्गमूल ढूंढना है। इसलिए हमें sqrt(x) का मूल्यांकन करने के लिए अपना खुद का फंक्शन बनाना होगा। इस फंक्शन में, आउटपुट का दशमलव अंक काट दिया जाएगा।
मान लीजिए x का मान 4 है, तो परिणाम 2 होगा। यदि x 8 है, तो परिणाम भी 2 होगा, क्योंकि sqrt(8) 2.82842 है। लेकिन हम केवल पूर्णांक भाग लेंगे।
हल करने के चरण
- l = 1, और h = x + 1, answer = 0 आरंभ करें
- जब तक h > l, करें
- mid = (h + l)/2
- यदि mid*mid <= x, तो l := mid + 1, answer = mid
- अन्यथा h = mid
- answer वापस करें
बेहतर समझ के लिए कार्यान्वयन देखें:
उदाहरण (पायथन)
class Solution(object):
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
low = 1
high = x+1
ans = 0
while high>low:
mid = (high+low)//2
print(low,mid,high)
if mid*mid<=x:
low = mid+1
ans = mid
else:
high = mid
return ans
ob1 = Solution()
print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))
इनपुट
print(ob1.mySqrt(4)) print(ob1.mySqrt(16)) print(ob1.mySqrt(7)) print(ob1.mySqrt(15))
आउटपुट
2 4 2 3