Giai thừa của một 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 5 là 120.
5! = 5 * 4 * 3 * 2 *1 5! = 120
Giai thừa của một số nguyên có thể được tìm thấy bằng cách sử dụng một chương trình đệ quy hoặc một chương trình không đệ quy. Ví dụ về cả hai điều này được đưa ra như sau.
Giai thừa sử dụng Chương trình không đệ quy
Vòng lặp for có thể được sử dụng để tìm giai thừa của một số. Điều này được chứng minh bằng cách sử dụng chương trình sau -
Ví dụ
#include <iostream> using namespace std; int main() { int n = 5, fact = 1, i; for(i=1; i<=n; i++) fact = fact * i; cout<<"Factorial of "<<n<<" is "<<fact; return 0; }
Đầu ra
Factorial of 5 is 120
Trong chương trình trên, vòng lặp for chạy từ 1 đến n. Đối với mỗi lần lặp của vòng lặp, dữ liệu được nhân với i. Giá trị cuối cùng của thực tế là tích của tất cả các số từ 1 đến n. Điều này được chứng minh bằng cách sử dụng đoạn mã sau.
for(i=1; i<=n; i++) fact = fact * i;
Giai thừa sử dụng chương trình đệ quy
Chương trình sau đây trình diễn một chương trình đệ quy để tìm giai thừa của một số.
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 = 5; cout<<"Factorial of "<<n<<" is "<<fact(n); return 0; }
Đầu ra
Factorial of 5 is 120
Trong chương trình trên, hàm fact () là một hàm đệ quy. Hàm main () gọi fact () bằng cách sử dụng số có giai thừa là bắt buộc. Điều này được chứng minh bằng đoạn mã sau.
cout<<"Factorial of "<<n<<" is "<<fact(n);
Nếu số là 0 hoặc 1, thì fact () trả về 1. Nếu là số khác, thì fact () gọi đệ quy chính nó với giá trị n-1.
Điều này được chứng minh bằng cách sử dụng đoạn mã sau -
int fact(int n) { if ((n==0)||(n==1)) return 1; else return n*fact(n-1); }