[C언어] 피보나치 수열을 출력하는 방법
ET의 공부/C언어2020. 12. 13. 01:04
C언어에서 피보나치 수열을 출력하는 방법에 대해 알아보겠습니다.
이번 포스팅은 두가지 방법에 대해 소개하도록 하겠습니다.
- N항 까지의 피보나치 수열 출력(ex. N = 4 , 0 1 1 2 )
- 특정 값까지의 피보나치 수열 출력( 5까지, 0 1 1 2 3 5)
- N항 까지의 피보나치 수열 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <stdio.h>
int main() {
int i, n, t1 = 0, t2 = 1, nextTerm;
printf("출력할 피보나치 수열의 항의 N항: ");
scanf("%d", &n);
printf("피보나치 수열: ");
for (i = 1; i <= n; ++i) {
printf("%d, ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return 0;
}
|
피보나치 수열은 n항의 값이 (n-1) ,(n-2)의 합으로 이루어집니다. 예를들어 t1,t2 가 0번째, 1번째 항이라면 더해진 값은 2번째 항이 되며
3번째 항은 1번째,2번째 항의 합이 되기 때문에
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
로 구현합니다.
- 특정 값까지의 피보나치 수열 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <stdio.h>
int main() {
int t1 = 0, t2 = 1, nextTerm = 0, n;
printf("출력할 수의 범위: ");
scanf("%d", &n);
// displays the first two terms which is always 0 and 1
printf("피보나치 수열: %d, %d, ", t1, t2);
nextTerm = t1 + t2;
while (nextTerm <= n) {
printf("%d, ", nextTerm);
t1 = t2;
t2 = nextTerm;
nextTerm = t1 + t2;
}
return 0;
}
|
방법은 위와 같지만 횟수가 아닌 while문을 이용하여 입력한 값보다 작을 경우에면 출력이 됩니다.
'ET의 공부 > C언어' 카테고리의 다른 글
[C언어] 최대 공약수 계산 방법 (0) | 2020.12.15 |
---|---|
[C언어] 정수를 뒤집는(반전) 방법 (0) | 2020.12.13 |
[C언어] 구구단을 출력하는 방법 (0) | 2020.12.13 |
[C언어] While문을 활용한 정수의 합 (0) | 2020.12.13 |
[C언어] 팩토리얼(n!)을 구하는 방법 (0) | 2020.12.12 |
댓글()