| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2227 人关注过本帖
标题:[求助]编写一个程序,用于产生斐波那契数列的前10个数
只看楼主 加入收藏
biubui
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-6-27
收藏
得分:0 
[CODE]

#include <stdio.h>

/*未经测试*/

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

int main()
{
int i;
for (i = 1; i <= 10; i++) printf("a%d = %d\n", i, f(i));
getch();
return 0;
}

[/CODE]


2007-09-08 16:46
蓝猪
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-9-5
收藏
得分:0 
习惯
2007-09-08 16:50
biubui
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-6-27
收藏
得分:0 
以下是引用peswe在2007-9-7 23:04:56的发言:

#include <stdio.h>

int Fibonacci(int n);

int main(void)
{
int n,i;
printf("\nHow many number you want to get:\t");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("%d ",Fibonacci(i));
}
printf("\n");
return 0;
}


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

peswe同志的程序很有潜力!程序唯一的原则问题是if分支不太合理。即概率最高的n>2的情况被放到了最后的else分支。应该为:

if(n > 2) return (Fibonacci(n-1)+Fibonacci(n-2));
if(n==1||n==2) return 1;
else return 0;


2007-09-08 17:01
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
收藏
得分:0 

呵呵,没错,按你的改变是可以减少判断的次数,以提高效率!~


C斗士~~~fighting!!!!
2007-09-08 21:38
快速回复:[求助]编写一个程序,用于产生斐波那契数列的前10个数
数据加载中...
 
   



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

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