递归法求斐波那契数列(C语言版)

斐波那契数列:

                 又称黄金分割数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

                 在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),

                                    即这个数列从第二项开始,每一项都等于前两项之和。

                 特别指出:0是第0项,不是第1项。

用递归法求斐波那契数列并列出所有项:

#include<stdio.h>
int fun(int n)      //n代表第几项。特别指出:0是第0项,不是第1项。
{
    if (n <= 1)
        return n;
    else
        return fun(n-1) + fun(n-2);
}

int main()
{
    int n;
    printf("请输入要输出多少项(自然数)斐波那契数列:");
    scanf("%d",&n);
    //int *a = (int *)malloc((n+1)*sizeof(int));//如需存储,使用动态内存分配n+1个空间进行存储
    int i;
    for (i = 0; i < n+1; i++)         //输出所有项
    {
        printf("%d, ", fun(i));
        if (i != 0 && i%5 == 0)     //每五项进行一次换行(第一行多一个第0项)
            printf("\n");
    }
    printf("第 %d 项是:%d\n", n, fun(n)); //输出要求的项
    return 0;
}

如:求第 30 项(顺便打印出0-30项)

递归法求斐波那契数列(C语言版)

递归法求斐波那契数列(C语言版)

上一篇:C/C++怎样产生任意指定范围的随机数?


下一篇:C语言 strftime 格式化显示日期时间