Dưới đây là ví dụ tính tổ hợp dùng giai thừa.
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() {
int n, r, result;
cout << "Nhập n: ";
cin >> n;
cout << "\nNhập r: ";
cin >> r;
result = fact(n) / (fact(r) * fact(n - r));
cout << "\nKết quả: " << result;
return 0;
}
Kết quả
Nhập n: 10 Nhập r: 4 Kết quả: 210
Trong chương trình, mã trong fact() tính giai thừa.
if (n == 0 || n == 1) return 1; else return n * fact(n - 1);
Trong main(), hai số tổ hợp nhập từ người dùng. Biến result lưu giá trị tổ hợp dùng giai thừa.
cout << "Nhập n: "; cin >> n; cout << "\nNhập r: "; cin >> r; result = fact(n) / (fact(r) * fact(n-r));