मान लीजिए कि हमारे पास एक संख्या x है, और x एक गैर-ऋणात्मक संख्या है। हमें किसी लाइब्रेरी फंक्शन का उपयोग किए बिना x का वर्गमूल ज्ञात करना है। इसलिए हमें sqrt(x) का मूल्यांकन करने के लिए अपना स्वयं का फ़ंक्शन बनाना होगा। इस फ़ंक्शन में, आउटपुट के दशमलव अंक को छोटा कर दिया जाएगा।
मान लीजिए x का मान 4 है, तो परिणाम 2 होगा यदि x 8 है, तो परिणाम भी 2 होगा, क्योंकि sqrt(8) 2.82842 है। लेकिन हम केवल पूर्णांक भाग लेंगे।
इसे हल करने के लिए, इन चरणों का पालन करें -
- इनिशियलाइज़ करें l =1, और h =x + 1, उत्तर =0
- जबकि h> l, करते हैं
- मध्य =(एच + एल)/2
- यदि मध्य*मध्य <=x, तो l :=मध्य + 1, उत्तर =मध्य
- अन्यथा h =मध्य
- वापसी का जवाब
आइए बेहतर ढंग से समझने के लिए कार्यान्वयन देखें
उदाहरण (पायथन)
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