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

팩토리얼을 찾는 C++ 프로그램

<시간/>

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

예:5의 계승은 120입니다.

5! = 5 * 4 * 3 * 2 *1
5! = 120

정수의 계승은 재귀 프로그램 또는 비재귀 프로그램을 사용하여 찾을 수 있습니다. 이 두 가지의 예는 다음과 같습니다.

비재귀 프로그램을 사용한 계승

for 루프는 숫자의 계승을 찾는 데 사용할 수 있습니다. 이것은 다음 프로그램을 사용하여 시연됩니다 -

예시

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

출력

Factorial of 5 is 120

위의 프로그램에서 for 루프는 1에서 n까지 실행됩니다. 루프의 각 반복에 대해 팩트에 i가 곱해집니다. 사실의 최종 값은 1에서 n까지의 모든 숫자의 곱입니다. 이것은 다음 코드 스니펫을 사용하여 보여줍니다.

for(i=1; i<=n; i++)
fact = fact * i;

재귀 프로그램을 사용한 계승

다음 프로그램은 숫자의 계승을 찾는 재귀 프로그램을 보여줍니다.

예시

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

출력

Factorial of 5 is 120

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

cout<<"Factorial of "<<n<<" is "<<fact(n);

숫자가 0 또는 1이면 팩트()는 1을 반환합니다. 숫자가 다른 숫자이면 팩트()는 n-1 값으로 자신을 재귀적으로 호출합니다.

이것은 다음 코드 스니펫을 사용하여 시연됩니다. -

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