| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:用递归函数做Fibonacci 数列的任一项
只看楼主 加入收藏
明明哥8991
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2012-3-27
结帖率:50%
收藏
 问题点数:0 回复次数:4 
用递归函数做Fibonacci 数列的任一项
数列第1、2项为的1,以后各项为前两项之和,求该数列中任何一项值。用递归函数程序实现。
2012-03-29 20:51
明明哥8991
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2012-3-27
收藏
得分:0 
已经想出来,看哪位高手有更简单的解或不同的解
#include "stdio.h"
fun(int n)
{
    int s;
    if(n==0||n==1)
        return 1;
    else s=(fun(n-1)+fun(n-2));
    return s;
}
main()
{
    int a;
    printf("please intput a numbebr:");
    scanf("%d",&a);
    fun(a);
    printf("%d\n",fun(a));
   
}
2012-03-29 21:01
zhuguangyue1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-3-8
收藏
得分:0 
程序代码:
#include<stdio.h>
long int fun(int n)
{
   return (n==1|n==2)?1:fun(n-1)+fun(n-2);
}
int main(void)
{
    int a;
    printf("please intput a numbebr:");
    scanf("%d",&a);
    printf("%d\n",fun(a));
   
    return 0;
} 
跟LZ的代码一样,
程序代码:
#include<stdio.h>

int main(void)
{
    int i, n;
    long int a = 1, b = 1;
   
    printf("please intput a numbebr:");

    scanf("%d",&n);
   
    for(i=1;i<=n;++i)
    {
        if(i == 1||i == 2)
            continue;
        b = b+a;
        a = b-a;
    }

    printf("%ld\n",(n==1||n==2)?a:b);
   
    return 0;
}
这个是另一个代码。
2012-04-15 22:04
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
int fib(int n)
{
    return n<=2 ?1:fib(n-1)+fib(n-2);
}
2012-04-15 22:17
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
还有lg(n)的二分法快速矩阵幂算法,有兴趣的话自己百度下
2012-04-15 22:19
快速回复:用递归函数做Fibonacci 数列的任一项
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026324 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved