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

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


समस्या विवरण

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

उदाहरण

इनपुट

score=4

आउटपुट

तरीकों की संख्या: 4

व्याख्या

स्कोर 4 तक पहुंचने के तरीके: 1+1+1+1, 1+1+2, 1+2+1, 2+1+1

इनपुट

score=5

आउटपुट

तरीकों की संख्या: 6

व्याख्या

स्कोर 5 तक पहुंचने के तरीके: 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 था या नहीं, यदि यह 2 था तो हम अगले रन के रूप में 1 से स्कोर को कवर करेंगे अन्यथा 2।

एल्गोरिदम चरण

  • एक पूर्णांक चर score लें।
  • फ्लैग चर check = false प्रारंभ में लें।
  • फंक्शन ways_reach_score(int score, bool check) 1 और 2 का उपयोग करके बिना लगातार 2 के स्कोर तक पहुंचने के तरीकों की संख्या बताता है।
  • प्रारंभिक गिनती 0 लें।
  • यदि स्कोर 0 है तो 0 लौटाएं।
  • यदि check false है मतलब पिछला रन 1 था, तो यदि वर्तमान स्कोर अधिक है तो तरीके होंगे count = ways_reach_score(score-1, false) + ways_reach_score(score-2, true)।
  • अन्यथा पिछला रन 2 था, इसलिए परिणामी रन केवल 1 होगा इसलिए तरीके होंगे ways_reach_score(score-1, false)।
  • अंत में हमें count में कुल तरीके मिल जाएंगे।
  • परिणाम के रूप में गिनती लौटाएं।

C++ कोड उदाहरण

#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 << "तरीकों की संख्या: " << ways_reach_score(score, check);
    return 0;
}

आउटपुट

तरीकों की संख्या: 4
  1. - C++ में अधिकतम अंतर वाले युग्म चुनने के तरीकों की गिनती

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

  1. - C++ में STL का उपयोग करके ऐरे और वेक्टर्स के साथ काम करना

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

  1. - C++ में STL का उपयोग करके बाइनरी ऐरे में 1 और 0 की गिनती

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