Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

재귀를 사용하여 숫자의 계승을 계산하는 C++ 프로그램

<시간/>

음이 아닌 정수 n의 계승은 n보다 작거나 같은 모든 양의 정수의 곱입니다.

예:7의 계승은 5040입니다.

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

재귀를 사용하여 숫자의 계승을 계산하는 코드를 살펴보겠습니다.

예시

#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;
}

출력

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

위의 프로그램에서 함수 fact()는 재귀 함수입니다. main() 함수는 factorial이 필요한 숫자를 사용하여 fact()를 호출합니다. 다음 코드 스니펫에서 이를 확인할 수 있습니다.

cout<<"Factorial of 5 is "<<fact(5)<<endl;
cout<<"Factorial of 3 is "<<fact(3)<<endl;
cout<<"Factorial of 7 is "<<fact(7)<<endl;

숫자가 0 또는 1이면 팩트()는 1을 반환합니다. 숫자가 다른 숫자이면 팩트()는 n-1 값으로 자신을 재귀적으로 호출합니다. 재귀적으로 자신을 호출하는 것과 함께 fact()는 n에 재귀 호출 fact(n-1)를 곱합니다. 이렇게 하면 됩니다.

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

이것은 다음 코드 스니펫을 사용하여 보여줍니다.

int fact(int n) {
   if ((n==0)||(n==1))
   return 1;
   else
   return n*fact(n-1);
}