【C Language】Fibonacci sequence(斐波那契数列)

94 阅读1分钟

Fibonacci

Fibonacci sequence

一个非常著名的数列

在数学上,它由0和1开始,之后的每一项都是前两项之和。 定义如下: 0 1 1 2 3 5 8 13 21 34 55 ...

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

image.png

image.png

c语言怎么计算前n项数列的和?

前两项是0 ,1

递归法

/**
 *  斐波那契数列
 *  求出每一项
 *  (递归法)
 * @param n
 * @return
 */
int fun(int n) {
    int an;
    if (0 == n)
        an = 0;
    else if (1 == n)
        an = 1;
    else
        an = fun(n - 1) + fun(n - 2);
    return an;
}
for (int i = 0; i < 20; ++i) {
    printf("%d ", fun(i));
    if (0 == i % 10)
        printf("\n");

Fibonacci Sequence变形:1/2+2/3+3/5+5/8+...+... 前n项(如:n=20)

sum += (float) x / y;

float sum = 0.0;
int x = 1, y = 2;
for (int i = 1; i <= 20; ++i) {
    int next = x + y;
    sum += (float) x / y;
    x = y;
    y = next;
}
printf("sum=%.3f\n", sum);