এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যেটি অনন্য সংখ্যার প্রদত্ত n-তম শক্তির যোগফল হিসাবে একটি পূর্ণসংখ্যাকে প্রকাশ করার উপায় খুঁজে বের করবে৷
আমাদের দুটি পূর্ণসংখ্যা সংখ্যা আছে এবং শক্তি . এবং আমাদের খুঁজে বের করতে হবে যে আমরা প্রদত্ত সংখ্যাটিকে কতগুলি উপায়ে উপস্থাপন করতে পারি অনন্য প্রাকৃতিক সংখ্যার n-তম ঘাতের যোগফল হিসাবে। আসুন একটি উদাহরণ দেখি।
ইনপুট − সংখ্যা =50, শক্তি =2
আউটপুট − 3
2টি ঘাতের যোগফল হিসেবে 4 লিখতে পারি।
আমরা সমস্যা সমাধানের জন্য পুনরাবৃত্তি ব্যবহার করা হবে. আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷-
সংখ্যা এবং পাওয়ার শুরু করুন।
-
একটি উপযুক্ত নাম দিয়ে একটি পুনরাবৃত্ত ফাংশন লিখুন। এটি নম্বর গ্রহণ করে , শক্তি এবং i আর্গুমেন্ট হিসাবে।
-
যদি সংখ্যা শূন্য বা pow(i, power) থেকে কম সংখ্যার থেকে বড় , তারপর 0 ফেরত দিন।
-
যদি সংখ্যাটি শূন্য হয় বা pow(i, power) সংখ্যার সমান হয়, তাহলে 1 ফেরত দিন।
-
আমাদের কাছে ফাংশনের জন্য দুটি পুনরাবৃত্ত কল রয়েছে যাতে মোট সংখ্যা গণনা করা যায়
-
i বৃদ্ধি করুন .
-
প্রথম পুনরাবৃত্ত কলে, প্রদত্ত নম্বরের চেয়ে কম নম্বরগুলি পরীক্ষা করুন৷
৷ -
দ্বিতীয় পুনরাবৃত্ত কলে, প্রদত্ত নম্বরটি পরীক্ষা করুন৷
৷
-
উদাহরণ
আসুন কোডটি দেখি।
#include <bits/stdc++.h> using namespace std; int findPossibleWaysCount(int number, int power, int i = 1) { if(number < 0 || number < pow(i, power)) { return 0; } if(number == 0 || number == pow(i, power)) { return 1; } return findPossibleWaysCount(number - pow(i, power), power, i + 1) + findPossibleWaysCount(number, power, i + 1); } int main() { // initializing the number and power int number = 50, power = 2; cout << findPossibleWaysCount(number, power) << endl; return 0; }
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
3
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।