Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में बाइनरी सर्च का उपयोग करके दी गई सटीकता तक संख्या का वर्गमूल ज्ञात करें

मान लीजिए कि हमारे पास एक सकारात्मक संख्या 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

  1. C++ का प्रयोग करते हुए दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या ज्ञात कीजिए

    एक चतुर्भुज यूक्लिडियन समतल ज्यामिति में चार शीर्षों और चार किनारों वाला एक बहुभुज बनाता है। नाम 4-गॉन आदि। चतुर्भुज के अन्य नामों में शामिल हैं और कभी-कभी उन्हें एक वर्ग, प्रदर्शन शैली आदि के रूप में भी जाना जाता है। इस लेख में, हम दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या का पता लगाने के तरीकों

  1. C++ में दिए गए बाइनरी ट्री के लेफ्ट लीफ नोड्स का योग ज्ञात कीजिए

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है जिसमें रूट नोड है और उसका बायां बच्चा और दायां बच्चा है। कार्य पेड़ के लीफ नोड्स का कुल योग ज्ञात करना है जो उसके मूल नोड पर छोड़े गए हैं। उदाहरण के लिए इनपुट-1: आउटपुट: 15 स्पष्टीकरण: दिए गए इनपुट बाइनरी ट्री में, सभी लेफ्ट लीफ नोड्स का योग 9+4+2

  1. C++ में एक बाइनरी ट्री में रूट से दिए गए नोड की दूरी ज्ञात करें

    मान लें कि हमारे पास कुछ नोड्स के साथ एक बाइनरी ट्री है। हमें रूट और दूसरे नोड u के बीच की दूरी का पता लगाना है। मान लीजिए पेड़ नीचे जैसा है: अब बीच की दूरी (रूट, 6) =2, पथ की लंबाई 2, के बीच की दूरी (रूट, 8) =3 आदि। इस समस्या को हल करने के लिए, हम बाएँ और दाएँ सबट्री में नोड को खोजने के लिए एक