标题:一个关于fibonacci数列的程序
取消只看楼主
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
 问题点数:0 回复次数:5 
一个关于fibonacci数列的程序

各位大哥,我是一个新手,刚开始学C++,想编一个关于求FIBONACCI数列的程序,可总是错误,希望各位大哥帮我看看,告诉我错误,谢谢了!


#include <iostream>

using namespace std;

int x;

int f(x)
{
switch (x)
{
case 0 : return 0;
break;
case 1 : return 1;
break;
default : return f(x-2) + f(x-1);
break;
}
}

int main()
{
while (cin >> x && x != EOF)
{
cout << f(x);
}
return 0;
}

搜索更多相关主题的帖子: fibonacci int break 
2007-07-29 17:42
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
得分:0 

2楼的大哥,小弟我想写成是一个int 型的函数f(x),我不知道,这样写是不行的吗一定要写成int f(int x)吗,可我x在上面也声明过了呀,我把程序改成int f(int x)了,可还是不行啊,大哥指教一下


2007-07-29 18:34
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
得分:0 
maoguoqing大哥,哈哈,可以了,谢谢!
这个x与你上面申明了那个x根本是两码子事,完全没有关系
我基础不是很扎实,我理解的你的意思是:一个是形参,一个是变量,两者不等同,大哥是这个意思吗

2007-07-29 18:46
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
得分:0 
以下是引用maoguoqing在2007-7-29 18:41:58的发言:

看了一下 你的主函数这样就可以了

int main()
{
cin >> x ;

cout << f(x);

return 0;
}

哈哈,这里我用while(cin >> x && x != EOF)是因为我想让他不只运行一次就结束,要运行很多次的关系,还是谢谢


2007-07-29 18:50
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
得分:0 
大哥,你说这个x与你上面申明了那个x根本是两码子事,完全没有关系

我基础不是很扎实,我理解的你的意思是:一个是形参,一个是变量,两者不等同,大哥是这个意思吗

2007-07-29 18:54
gzhsea
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-1
得分:0 

恩.谢谢大哥.
我发现这个程序运行到大概第40几个fibonacci数的时候就变的很慢了,有什么算法能提高效率吗?
我想,建个数组,把每个算出来的数都读入数组,这样直接取数组中的数就可以了,这样行吗


2007-07-29 19:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-158974-1-1.html




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

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