티스토리 뷰
# 팩토리얼 문제
문제) 팩토리얼 (=계승) 함수 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
*************************************************/
'Develop Story > C' 카테고리의 다른 글
| <변수와 상수 고급 이론> 형한정어 Const (0) | 2017.08.18 |
|---|---|
| <피보나치 수열>: #순환 버전 #반복 버전 (0) | 2017.07.25 |
| <C 프로그래밍 #1-1> 순환으로 최대값 최소값 구하기 (0) | 2017.06.29 |
| C 언어 게임 프로그래밍 #1 : 배틀 테트리스 (5) | 2017.06.10 |
| <C 프로그래밍 #4> : 중위식을 후위식으로 변환하는 프로그램 (0) | 2017.06.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday