有一數列的規則如下1, 1, 2, 3, 5, 8, 13, 21 ... 求第30位數是多少?

程式碼如下:

#include <stdio.h>
int fib(int n);


int main(int argc, const char * argv[]) {
    
    int n;
    scanf("%d", &n);
    
    for (int i = 0; i <= n; i++)
    {
        printf("%d %d\n", i, fib(i));
    }
    
    return 0;
}

int fib(int n)
{
    if (n == 0 || n == 1)
    {
        return 1;
    }else{
        return fib(n - 1) + fib(n - 2);
    }
}

印出結果如下:

0 1
1 1
2 2
3 3
4 5
5 8
6 13
7 21
8 34
9 55
10 89
11 144
12 233
13 377
14 610
15 987
16 1597
17 2584
18 4181
19 6765
20 10946
21 17711
22 28657
23 46368
24 75025
25 121393
26 196418
27 317811
28 514229
29 832040
30 1346269

 

    Will 發表在 痞客邦 留言(0) 人氣()