দুটি ইনপুট x এবং n দেওয়া থাকলে, রিকার্সিভ ফাংশন ব্যবহার করে x^n বের করতে হবে। ইভেন এক্সপোনেন্টের জন্য অপ্টিমাইজড পদ্ধতি (square of half power) ব্যবহার করা হয়েছে।
রিকার্সিভ লজিক
long power(int x, int n) {
if (n == 1) return x;
else if (n % 2 == 0) return pow(power(x, n/2), 2); // n even
else return x * power(x, n-1); // n odd
}
উদাহরণ
ইনপুট: x = 5, n = 4
power(5,4) → even → pow(power(5,2), 2)
power(5,2) → even → pow(power(5,1), 2) = pow(5,2) = 25
power(5,4) = pow(25,2) = 625
C কোড
#include <stdio.h>
#include <math.h>
long power(int x, int n) {
if (n == 1) return x;
else if (n % 2 == 0) return (long)pow(power(x, n/2), 2);
else return x * power(x, n-1);
}
int main() {
long x, n, result;
printf("Enter X and N: "); scanf("%ld %ld", &x, &n);
result = power(x, n);
printf("X to the power N = %ld\n", result);
return 0;
}
আউটপুট
Enter X and N: 5 4 X to the power N = 625