একটি নন-নেগেটিভ ইন্টিজার x-এর বর্গমূল বের করতে হবে লাইব্রেরি ফাংশন ছাড়া। ডেসিমাল পার্ট টান্কা করুন (ট্রানকেট)। বাইনারি সার্চ ব্যবহার করা হয়েছে।
সমাধানের পদ্ধতি
low = 1,high = x + 1,ans = 0।while high > low:mid = (high + low) // 2।- যদি
mid * mid <= x,low = mid + 1,ans = mid। - অন্যথায়
high = mid।
ansরিটার্ন করুন।
উদাহরণ কোড
class Solution(object):
def mySqrt(self, x):
low = 1
high = x + 1
ans = 0
while high > low:
mid = (high + low) // 2
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