रनों का स्कोर दिया। लक्ष्य उस स्कोर तक इस तरह पहुंचना है कि बल्लेबाज एक ही गेंद में 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