Giai thừa của số nguyên không âm n là tích của tất cả các số nguyên dương nhỏ hơn hoặc bằng n.
Ví dụ: Giai thừa của 7 là 5040.
7! = 7 × 6 × 5 × 4 × 3 × 2 × 1 7! = 5040
Mã tính giai thừa bằng đệ quy:
Ví dụ
#include <iostream>
using namespace std;
int fact(int n) {
if ((n == 0) || (n == 1))
return 1;
else
return n * fact(n - 1);
}
int main() {
cout << "Giai thừa của 5 là " << fact(5) << endl;
cout << "Giai thừa của 3 là " << fact(3) << endl;
cout << "Giai thừa của 7 là " << fact(7) << endl;
return 0;
}
Kết quả đầu ra
Giai thừa của 5 là 120 Giai thừa của 3 là 6 Giai thừa của 7 là 5040
Trong chương trình, hàm fact() là hàm đệ quy. main() gọi fact() với số cần tính:
cout << "Giai thừa của 5 là " << fact(5) << endl; cout << "Giai thừa của 3 là " << fact(3) << endl; cout << "Giai thừa của 7 là " << fact(7) << endl;
Nếu số là 0 hoặc 1, fact() trả về 1. Nếu khác, fact() gọi đệ quy với n-1 và nhân với n. Cho ra n×(n-1)×...×3×2×1:
int fact(int n) {
if ((n == 0) || (n == 1))
return 1;
else
return n * fact(n - 1);
}