मान लीजिए कि हमारे पास एक सकारात्मक संख्या n और सटीक p है। हमें बाइनरी सर्च तकनीक का उपयोग करके दशमलव स्थानों तक n से p तक की संख्या का वर्गमूल ज्ञात करना है। तो अगर संख्या n =50, और p =3 है, तो आउटपुट 7.071 है।
तो इसे हल करें, हमें कुछ चरणों का पालन करना होगा -
- प्रारंभ प्रारंभ करें:=0 और अंत:=n
- मध्य पूर्णांक के वर्ग की तुलना करें, यदि यह संख्या के बराबर है तो अभिन्न अंग पता चला है, अन्यथा आवश्यकतानुसार बाएं या दाएं देखें।
- एक बार जब हमने इंटीग्रल पार्ट के लिए टास्क पूरा कर लिया है, तो फ्रैक्शनल पार्ट के लिए करें।
- इन्क्रीमेंट वेरिएबल को 0.1 के रूप में प्रारंभ करें, फिर आंशिक भाग को p स्थानों तक परिकलित करें। प्रत्येक पुनरावृत्ति के लिए वृद्धि अपने पिछले मान के 1/10 वें स्थान पर बदल जाती है।
- अंत में उत्तर दें।
उदाहरण
#include<iostream> using namespace std; float sqrtBinarySearch(int num, int p) { int left = 0, right = num; int mid; float res; while (left <= right) { mid = (left + right) / 2; if (mid * mid == num) { res = mid; break; } if (mid * mid < num) { left = mid + 1; res = mid; } else { right = mid - 1; } } float incr = 0.1; for (int i = 0; i < p; i++) { while (res * res <= num) { res += incr; } res -= incr; incr /= 10; } return res; } int main() { int n = 50, p = 3; cout << "Square root of " << n << " up to precision " << p << " is: " << sqrtBinarySearch(50, 3) << endl; }
आउटपुट
Square root of 50 up to precision 3 is: 7.071