[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문을 이용하여 입력한 값보다 작을 경우에면 출력이 됩니다.

댓글()