Giai thừa là gì?
Giai thừa của số n (ký hiệu n!) là tích của tất cả các số nguyên dương từ 1 đến n. Theo quy ước: 0! = 1.
Ví dụ:
0! = 1 1! = 1 2! = 2×1 = 2 3! = 3×2×1 = 6 4! = 4×3×2×1 = 24 5! = 5×4×3×2×1 = 120 ... n! = n × (n-1) × (n-2) × ... × 1
Ví dụ
Input: n = 5 → Output: 120 Input: n = 6 → Output: 720
Có nhiều phương pháp tính giai thừa:
- Sử dụng vòng lặp
- Sử dụng đệ quy (đệ quy không hiệu quả với n lớn do tràn ngăn xếp)
- Sử dụng hàm
Thuật toán (đệ quy)
Bắt đầu
Bước 1: Hàm factorial(int n)
Nếu n == 0 trả về 1
Trả về n * factorial(n-1)
Bước 2: Trong main(): khai báo num = 10, in factorial(num)
Kết thúc
Mã nguồn C
#include <stdio.h>
int factorial(int n) {
if (n == 0) return 1;
return n * factorial(n - 1);
}
int main() {
int num = 10;
printf("Giai thừa của %d là %d", num, factorial(num));
return 0;
}
Kết quả C
Giai thừa của 10 là 3628800
Mã nguồn C++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0) return 1;
return n * factorial(n - 1);
}
int main() {
int num = 7;
cout << "Giai thừa của " << num << " là " << factorial(num) << endl;
return 0;
}
Kết quả C++
Giai thừa của 7 là 5040