티스토리 뷰

반응형

 

피보나치 수열앞과 뒤의 수를 더한 값으로 나열된다.

0, 1, 1, 2, 3과 같은 경우이다.

3번째 항 = 1번째 항 + 2번째 항,

4번째 항 = 2번째 항 + 3번째 항의 값이다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main(void)
{
    int a = 0, b = 1, c; // a는 f0, b는 f1, c는 다음 항 결과
    int i = 1, n; // i는 반복 변수
 
    printf("몇 번째 항까지 구할까요? : ");
    scanf_s(" %2d"&n);
 
    for (i = 1; i <= n+1++i)
    {
        printf("%d ", a);
        c = a + b;
        a = b;
        b = c;
    }
 
    return 0;
}
 
cs

 

 

 

  - 결과  

 

 

 

  - 설명  

첫 항은 0, 두번째 항은 1이다.

그 뒤는 0+1(1), 1+1(2), 1+2(3), 2+3(5)

등으로 나아간다.

 

()안의 값에 해당하는

다음 예측 항을 c라고 두었다.

 

 

a b c    
-> a b c  
  -> a b c

 

 

위 표와 같이 항들과 변수가 이동하며

값이 변해야 하므로,

 

c = a + b이고,

a = b이고,

b = c가 되는 것이다.

 

10번째 항까지 구하라고 했는데

값은 11개가 출력되었다.

 

11번째 줄에서  for (i = 1; i <= n+1; ++i) 라고 썼기 때문인데,

피보나치 수열은 0번째 항부터 시작하므로 

11개가 출력되도록 i <= n+1을 적용시켰다.

 

 

 

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요