티스토리 뷰

# 팩토리얼 문제


 문제) 팩토리얼 (=계승) 함수 n!은 $n\le1$일 때 n * (n - 1)! 의 값을 가진다. n!을 계산하는 C프로그램을 순환과 반복버전으로 구현하라.



# 구현 // 순환함수는 다들 쉽게 작성하시리라 믿고, 반복버전 코드를 배워가시면 좋을 것 같습니다.


/*************************************************
 ** Factorial recursive ver & iterative ver
*************************************************/

#include <stdio.h>

int recur_fac(int n);
int iter_fac(int n);

void main()
{
	int n;
	int output1, output2;
	while (1)
	{
		printf("원하는 수를 입력하세요. 만약 종료를 원한다면 음수를 입력해주세요.\n");
		scanf("%d", &n);

		if (n < 0)
			break;
		
		output1 = recur_fac(n);
		output2 = iter_fac(n);

		printf("순환버전 팩토리얼 값: %d\n", output1);
		printf("반복버전 팩토리얼 값: %d\n", output2);
	}
}

int recur_fac(int n)
{
	if (n <= 1)
		return 1;
	else return n * recur_fac(n - 1);
}

int iter_fac(int n)
{
	int result = 1;
	while (n) // 0이 되면 while문 탈출
	{
		result *= n--;
	}
	return result;
}

/*************************************************
 ** End Line
*************************************************/


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday