设为首页 加入收藏

TOP

递归法求斐波那契数列(C语言版)
2014-11-23 18:53:22 来源: 作者: 【 】 浏览:7
Tags:那契 数列 语言

斐波那契数列:

又称黄金分割数列,指的是这样一个数列: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
  
   
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语言实现Huffman树及Huffman编码 下一篇[Objective-C]OC中单例设计模式讲..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: