본문 바로가기

피보나치 수열

피보나치 수열(Fibonacci sequence)은 다음과 같이 정의된다.

 

 

 

<C: 재귀함수>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
int seq(int n);
 
int main()
{
    int len;
    int i;
 
    printf("How long?: ");
    scanf("%d"&len);
 
    for (i = 1; i <= len; ++i)
    {
        printf("%d ", seq(i));
    }
 
    return 0;
}
 
int seq(int n)
{
    switch (n)
    {
    case 0:
        return 0;
    case 1:
        return 1
    default:
        return (seq(n - 1+ seq(n - 2));
    }
}
cs

 

또는

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int seq(int n);
 
int main()
{
    int len;
    int i;
 
    printf("How long?: ");
    scanf("%d"&len);
 
    for (i = 1; i <= len; ++i)
    {
        printf("%d ", seq(i));
    }
 
    return 0;
}
 
int seq(int n)
{
    return ((n == 0|| (n == 1)) ? n : (seq(n - 1+ seq(n - 2));
}
cs

 

 

 

 

 

 

<C>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
 
int main()
{
    int n1 = 1;
    int n2 = 1;
    int n3;
    int num;
    int i;
 
    printf("How long?: ");
    scanf("%d"&num);
   
    printf("%d, %d", n1, n2);
   num -= 2;
 
    for (i = 0; i < num; ++i)
    {
        n3 = n1 + n2;
 
        printf(", %d", n3);
 
        n1 = n2;
        n2 = n3;
    }
 
    return 0;
}
cs

 

 

'Programming > 과제' 카테고리의 다른 글