একটি সংখ্যা x-র y ঘাত (x^y) হলো x-কে y বার নিজের সাথে গুণ করা। উদাহরণ: 2^10 = 1024।
রিকার্সিভ প্রোগ্রাম
#include <iostream>
using namespace std;
int FindPower(int base, int power) {
if (power == 0)
return 1;
else
return base * FindPower(base, power - 1);
}
int main() {
int base = 3, power = 5;
cout << base << " raised to the power " << power << " is " << FindPower(base, power);
return 0;
}
আউটপুট
3 raised to the power 5 is 243
ব্যাখ্যা
বেস কেস
if (power == 0) return 1; — যেকোনো সংখ্যার ০ ঘাত = ১।
রিকার্সিভ কেস
return base * FindPower(base, power - 1); — প্রতিবার পাওয়ার ১ কমিয়ে রিকার্সিভ কল।
কল সিকোয়েন্স
FindPower(3,5) → 3 * FindPower(3,4) → 3 * 3 * FindPower(3,3) ... → 3⁵ = 243।
সীমাবদ্ধতা: O(n) রিকার্সিভ কল। বড় পাওয়ারের জন্য এক্সপোনেনশিয়েশন বাই স্কোয়ারিং (Exponentiation by Squaring) ব্যবহার করুন (O(log n))।