রানের স্কোর দিয়েছেন। লক্ষ্য হল সেই স্কোর এমনভাবে পৌঁছানো যাতে ব্যাটসম্যান একটি মাত্র বলে 1 বা 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 হিসাবে স্কোর কভার করব।
-
একটি পূর্ণসংখ্যা পরিবর্তনশীল স্কোর নিন।
-
পতাকা পরিবর্তনশীল চেক নিন =প্রাথমিকভাবে মিথ্যা।
-
ফাংশন ways_reach_score(int স্কোর, বুল চেক) 1 এবং 2 ব্যবহার করে একটি স্কোর পৌঁছানোর উপায়গুলির গণনা বলে কোনো ধারাবাহিক 2s ছাড়াই৷
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
স্কোর 0 হলে 0 ফেরত দিন।
-
যদি চেকটি মিথ্যা হয় তার মানে পূর্ববর্তী রান ছিল 1, তাই বর্তমান স্কোর বেশি হলে উপায় গণনা করা হবে =ways_reach_score(score − 1, false) +ways_reach_score(score − 2, true)।
-
অন্যথায় পূর্ববর্তী রান ছিল 2, তাই ফলস্বরূপ রান শুধুমাত্র 1 হবে তাই উপায় হবে ways_reach_score(স্কোর −1, মিথ্যা)।
-
শেষে আমরা গণনায় মোট উপায় পাব।
-
ফলাফল হিসাবে রিটার্ন গণনা।
উদাহরণ
#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