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

C++ में लगातार 2s के बिना 1 और 2 का उपयोग करके स्कोर तक पहुंचने के तरीकों की गणना करें

रनों का स्कोर दिया। लक्ष्य उस स्कोर तक इस तरह पहुंचना है कि बल्लेबाज एक ही गेंद में 1 या 2 रन बना सके। प्रतिबंध यह है कि कोई भी 2 रन लगातार नहीं लिए जा सकते। उदाहरण के लिए, दिए गए स्कोर 6 तक पहुंचने के लिए, कोई रन ले सकता है जैसे:1+2+1+2 लेकिन 2+2+1+1 नहीं या किसी अन्य तरीके से लगातार दो 2 के साथ।

उदाहरण के लिए

इनपुट

score=4

आउटपुट

Count of ways to reach a score using 1 and 2 with no consecutive 2s are: 4

स्पष्टीकरण

The ways in which we can reach the score 4 in following ways:
1+1+1+1, 1+1+2, 1+2+1, 2+1+1

इनपुट

score=5

आउटपुट

Count of ways to reach a score using 1 and 2 with no consecutive 2s are: 6

स्पष्टीकरण

The ways in which we can reach the score 6 in following ways:
1+1+1+1+1, 2+1+1+1, 1+2+1+1 , 1+1+2+1, 1+1+1+2, 2+1+2

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में हम यह चिह्नित करने के लिए एक ध्वज का उपयोग करेंगे कि पिछला स्कोर दो था या नहीं, अगर यह 2 था तो हम अगले रन के साथ 1 और 2 के रूप में स्कोर को कवर करेंगे।

  • एक पूर्णांक चर स्कोर लें।

  • शुरू में फ्लैग वैरिएबल चेक =असत्य लें।

  • फ़ंक्शन तरीके_रीच_स्कोर(इंट स्कोर, बूल चेक) बिना लगातार 2 सेकंड के 1 और 2 का उपयोग करके स्कोर तक पहुंचने के तरीकों की गिनती बताता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • अगर स्कोर 0 रिटर्न 0 है।

  • यदि चेक गलत है, तो इसका मतलब है कि पिछला रन 1 था, इसलिए यदि वर्तमान स्कोर अधिक है तो तरीकों की गणना की जाएगी =तरीके_रीच_स्कोर (स्कोर -1, गलत) + तरीके_रीच_स्कोर (स्कोर - 2, सत्य)।

  • अन्यथा पिछला रन 2 था, इसलिए परिणामी रन केवल 1 होगा इसलिए तरीके होंगे way_reach_score(score - 1, false).

  • अंत में हमें गिनती में कुल तरीके मिलेंगे।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int ways_reach_score(int score, bool check){
   int count = 0;
   if (score == 0){
      return 1;
   }
   if (check == false && score > 1){
      count += ways_reach_score(score − 1, false) + ways_reach_score(score − 2, true);
   } else {
      count += ways_reach_score(score − 1, false);
   }
   return count;
}
int main(){
   int score = 4;
   bool check = false;
   cout<<"Count of ways to reach a score using 1 and 2 with no consecutive 2s are: "<<ways_reach_score(score, check);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of ways to reach a score using 1 and 2 with no consecutive 2s are: 4

  1. C++ में अधिकतम अंतर वाली जोड़ी चुनने के तरीकों की गणना करें

    हमें Arr[] संख्याओं की एक सरणी दी गई है। लक्ष्य उन युग्मों की संख्या गिनना है जिनका अंतर सभी संभावित युग्मों के अधिकतम अंतर के बराबर है। जोड़े गिनें (i!=j) और arr[x]- arr[y] अधिकतम संभव है। हम इसे पहले अधिकतम अंतर ज्ञात करके करेंगे जहां (i!=j)। और maxdiff के रूप में स्टोर करें। फिर उन सभी जोड़ियों

  1. सी ++ में एसटीएल का उपयोग करके ऐरे और वैक्टर के साथ काम करना

    समस्याओं को हल करने के लिए प्रतिस्पर्धी प्रोग्रामिंग में ऐरे और वैक्टर बहुत महत्वपूर्ण डेटा संरचनाएं हैं। और एसटीएल (मानक टेम्पलेट लाइब्रेरी ) c++ प्रोग्रामिंग में सरणियों और वैक्टर के संचालन को करने के लिए कुछ कार्य प्रदान करते हैं। आइए इनमें से कुछ कार्यों को क्रिया में देखें, सरणी/वेक्टर का योग

  1. सी ++ में एसटीएल का उपयोग करके बाइनरी सरणी में 1 और 0 की संख्या की गणना करें

    इस ट्यूटोरियल में, हम C++ में STL का उपयोग करके बाइनरी ऐरे में 1 और 0 की संख्या गिनने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक सरणी प्रदान की जाएगी। हमारा काम सरणी में मौजूद 0 और 1 की संख्या गिनना है। उदाहरण #include <bits/stdc++.h> using namespace std; // checking if element is