티스토리 뷰
# 피보나치 수열 문제
Fibonacci 수열은 다음과 같이 정의된다.
$f_0 = 0, f_1 = 1 그리고 f_i = f_{i - 1} + f_{i - 2}(i > 1 일 때)$
$f_i$를 계산하는 C함수로 순환 함수와 반복 함수를 모두 작성하라.
# 구현 // 반복버전에서 반복계수가 2부터 시작해서 n까지 간다는 것만 주의하면 된다. 반복계수가 2인 까닭은 2개의 초기값을 설정해줬기 때문에 0과 1을 지나쳐 2부터 시작되는 것이다.
/************************************************* **Fibonacci iterative & recursive ver *************************************************/ #include <stdio.h> int recur_fibo(int n); int iter_fibo(int n); void main() { int n; while (1) { printf("테스트를 원하는 양의 정수를 입력해주세요. 음수를 입력하면 프로그램을 종료합니다.\n"); scanf("%d", &n); if (n < 0) break; printf("순환 버전 피보나치 결과: %d\n", recur_fibo(n)); printf("반복 버전 피보나치 결과: %d\n", iter_fibo(n)); } } int recur_fibo(int n) { if (n <= 1) return n; return recur_fibo(n - 1) + recur_fibo(n - 2); } int iter_fibo(int n) { int i; int f0, f1, fi; // 초기값 설정 f0 = 0; f1 = 1; // 예외처리 if (n == 0) return 0; else if (n == 1) return 1; else { for (i = 2; i <= n; i++) { fi = f0 + f1; f0 = f1; f1 = fi; } } return fi; } /************************************************* ** End Line *************************************************/
'Develop Story > C' 카테고리의 다른 글
<변수와 상수 고급 이론> 형한정어 Volatile (0) | 2017.08.18 |
---|---|
<변수와 상수 고급 이론> 형한정어 Const (0) | 2017.08.18 |
<팩토리얼(=계승) 함수>: #순환 버전 #반복 버전 (0) | 2017.07.25 |
<C 프로그래밍 #1-1> 순환으로 최대값 최소값 구하기 (0) | 2017.06.29 |
C 언어 게임 프로그래밍 #1 : 배틀 테트리스 (5) | 2017.06.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday