একটি নন-নেগেটিভ ইন্টিজার n-র ফ্যাক্টোরিয়াল হলো ১ থেকে n পর্যন্ত সব ধনাত্মক পূর্ণসংখ্যার গুণফল। উদাহরণ: 4! = 4 × 3 × 2 × 1 = 24।
রিকার্সিভ প্রোগ্রাম
#include <iostream>
using namespace std;
int fact(int n) {
if ((n == 0) || (n == 1))
return 1;
else
return n * fact(n - 1);
}
int main() {
int n = 4;
cout << "Factorial of " << n << " is " << fact(n);
return 0;
}
আউটপুট
Factorial of 4 is 24
ব্যাখ্যা
বেস কেস
if (n == 0 || n == 1) return 1; — ০! এবং ১! হলো ১।
রিকার্সিভ কেস
return n * fact(n - 1); — ফাংশন নিজের আপনাকে ছোট ইনপুট দিয়ে কল করে।
কল স্ট্যাক
fact(4) → 4 * fact(3) → 3 * fact(2) → 2 * fact(1) → 1। এরপর রিটার্ন হয়ে আসে: ২×১=২, ৩×২=৬, ৪×৬=২৪।
সীমাবদ্ধতা: বড় n-র জন্য স্ট্যাক ওভারফ্লো হতে পারে। ইন্টারেটিভ বা ডাইনামিক প্রোগ্রামিং ভালো।