대학교 1-2/컴프
LAB4_3
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)...
이렇게 간다