Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tính giai thừa của một số bằng cách sử dụng đệ quy

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 7 là 5040.

7! = 7 * 6 * 5 * 4 * 3 * 2 *1
7! = 5040

Hãy để chúng tôi xem mã để tính giai thừa của một số bằng cách sử dụ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<<"Factorial of 5 is "<<fact(5)<<endl;
   cout<<"Factorial of 3 is "<<fact(3)<<endl;
   cout<<"Factorial of 7 is "<<fact(7)<<endl;
   return 0;
}

Đầu ra

Factorial of 5 is 120
Factorial of 3 is 6
Factorial of 7 is 5040

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 5 is "<<fact(5)<<endl;
cout<<"Factorial of 3 is "<<fact(3)<<endl;
cout<<"Factorial of 7 is "<<fact(7)<<endl;

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. Cùng với việc gọi chính nó một cách đệ quy, fact () nhân n với lời gọi đệ quy fact (n-1). Điều này mang lại.

n*(n-1)*(n-2)....3*2*1 or the factorial of n

Đ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);
}