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

सी ++ में संख्या उच्च या निम्न अनुमान लगाएं


मान लीजिए कि हम गेस गेम खेल रहे हैं। इस खेल के गुण इस प्रकार हैं -

खिलाड़ी 1 1 से n तक की कोई संख्या चुनेगा। खिलाड़ी 2 को अनुमान लगाना है कि मैंने कौन सा नंबर चुना है। जब भी खिलाड़ी2 गलत अनुमान लगाता है, खिलाड़ी1 खिलाड़ी2 को बताएगा कि संख्या अधिक है या कम।

हम फ़ंक्शन अनुमान (संख्या) का उपयोग कर सकते हैं जो निम्नानुसार 3 संभावित परिणाम लौटाएगा -

  • -1 - प्लेयर1 की संख्या कम है

  • 1 - प्लेयर1 की संख्या अधिक है

  • 0 - संख्या का मिलान हुआ

इसलिए, यदि इनपुट n =10 जैसा है, तो चुनें =5, तो आउटपुट 5 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एल:=1,आर:=एन

  • जबकि l −=r, करें −

    • एम:=एल+(आर - एल)/2

    • यदि अनुमान (एम) 0 के समान है, तो -

      • वापसी मी

    • यदि अनुमान (एम) -1 के समान है, तो -

      • आर:=एम - 1

    • अन्यथा

      • एल:=एम + 1

  • वापसी 0

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
private:
   int number;
   int guess(int num){
      if(number > num)
         return 1;
      if(number < num)
         return -1;
      return 0;
   }
public:
   Solution(int n){
      number = n;
   }
   int guessNumber(int n) {
      int l=1,r=n,m;
      while(l<=r){
         m=l+(r-l)/2;
         if(guess(m)==0)
            return m;
         if(guess(m)==-1)
            r=m-1;
         else
            l=m+1;
      }
      return 0;
   }
};
main(){
   Solution ob(5); //pick = 5
   cout << (ob.guessNumber(10));
}

इनपुट

5,10

आउटपुट

5

  1. C++ में मितव्ययी संख्या

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है। हमारा कार्य यह जाँचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या - एक संख्या जिसके अंकों की संख्या दी गई संख्या के अभाज्य गुणनखंड में अंकों की संख्या से अधिक है। उदाहरण − 625, संख्या 625 का अभाज्

  1. सी++ पेंटाटोप नंबर

    पास्कल के त्रिभुज में एक पंचकोण संख्या को पाँचवीं संख्या के रूप में वर्णित किया गया है। अब, जैसा कि आप जानते हैं, यह पांचवीं संख्या है, तो इसका मतलब है कि हमारे पास पास्कल के त्रिकोण में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है। पास्कल त्रिभुज की

  1. C++ में एडम नंबर

    इस खंड में हम देखेंगे कि एक प्रोग्राम कैसे लिखा जाता है जो यह जांच सकता है कि दी गई संख्या एडम नंबर है या नहीं। कोड में गोता लगाने से पहले आइए देखें कि एडम नंबर क्या है? आदम संख्या एक संख्या है मान लीजिए n, तो यदि n का वर्ग और n के विपरीत का वर्ग एक-दूसरे के विपरीत हों, तो वह संख्या आदम संख्या होती