Launa 2023. 9. 26. 11:09

피보나치 수열의 값을 출력하려한다. 지시된 내용에 따라 작업을 수행하시오.

피보나치 수열은 다음과 같은 재귀적 정의에 의해 정해진다:

F(n) = F(n-1) + F(n-2). F(0) = F(1) = 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int fibo(int n);
int main(void)
{
 int n, idx;
 printf("몇개의 피보나치 수열값을 출력할까요?(3보다 큰 정수):");
 scanf("%d"&n);
 for (idx = 0; idx < n; idx++)
 {
 printf("%10d ", fibo(idx));
 if ((idx + 1) % 5 == 0// 한줄에 5개씩 출력하기위해서..
 printf("\n");
 }
 printf("\n");
}
int fibo(int n)
{
 if (n == 0 || n == 1)
 /* 이곳에 코드 삽입 */
 else
 /* 이곳에 코드 삽입 */
cs

정답:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int fibo(int n);
int main(void)
{
    int n, idx;
    printf("몇개의 피보나치 수열값을 출력할까요?(3보다 큰 정수):");
    scanf("%d"&n);
    for (idx = 0; idx < n; idx++)
    {
        printf("%10d ", fibo(idx));
        if ((idx + 1) % 5 == 0// 한줄에 5개씩 출력하기위해서..
            printf("\n");
    }
    printf("\n");
}
int fibo(int n)
{
    if (n == 0 || n == 1)
        return 1;
    else
        return fibo(n - 1+ fibo(n - 2);
}
cs

1 1 2 3 ...이런식으로 가는게 피보나치 수열인데

f(0)+f(1)=f(2)..

f(1)+f(2)=f(3)...

이렇게 간다