요약

C언어에서 재귀 호출을 이용한 팩토리얼 구하는 함수이다.

정수 n의 팩토리얼은 n! 이라고 표시하며, n! = n * (n-1) * (n-2) * (n-3) * . . * 2 * 1 이며

5! 일 경우 5! = 120 = 5 * 4 * 3 * 2 * 1 다.



예제

#include <stdio.h>

unsigned __int64 factorial( unsigned __int64 num );

int main( )
{
	int nNum = 5;
	printf( "%d! : %I64u", nNum, factorial(nNum) );

	return 0;
}

unsigned __int64 factorial( unsigned __int64 num )
{
	if( num == 1 )
	{
		return 1;
	}

	return num * factorial( num-1 );
}


※결과




재귀호출로 처리

#define _MAX 10

#include <stdio.h>

int factorial( int su );

int main( )
{
	int i, sum=0;

	for( i=1 ; i<=_MAX ; i++ )
	{
		sum += factorial( i );
	}

	printf( "%d\n", sum );

	return 0;
}

int factorial( int su )
{
	if( su == 1 )
	{
		return su;
	}

	else
	{
		return su *= factorial( su-1 );
	}
}

+ Recent posts