C++斐波那契数列问题

来源:百度知道 编辑:UC知道 时间:2024/06/29 02:03:58
我的题目是:斐波那契数列:已知数串1,1,2,3,5,8,13,……,从第3个数起每个数都等于它前面相邻的两个数之和。请编程计算出第n个数是多少?

程序#include<iostream>
using namespace std;
int main()
{
int i,n,a,b,c;
cin>>n;
a=1; b=1;
if(n==1)
cout<<"1";
else
if (n==2)
cout<<"1";
for (i=3;i<=n;i++)
{

c=a+b;
a=b;
b=c;

}cout<<c;

system("pause");
return 0;
}
看看哪儿错了.
谢谢!

你忘记else 后面添加{}否则,无论前面结果怎样,都会执行后面部分。
以下是改后的代码,你看看,比较一下区别,我相信你一下就会恍然大悟的。
如果还有什么问题,欢迎多多交流!
#include<iostream>
using namespace std;
int main()
{
int i,n,a,b,c;
cin>>n;
a=1; b=1;
if(n==1)
cout<<"1";
else
if (n==2)//这个“{”可以省略,因为只包含一句话,就它后面一句。
cout<<"1";
else{ //这个“{”很重要不能省略
for (i=3;i<=n;i++)
{

c=a+b;
a=b;
b=c;

}
cout<<c;
}

return 0;
}

else //这里应该是lz粗心了
{
for (i=3;i<=n;i++)
{

c=a+b;
a=b;
b=c;

}cout<<c;
}

我把你的代码复制后运行了一下, 没问题的!

#include<iostream>//定义头文件
using namespace std;
int main()//主函数
{
int i,n,a=1,b=1,c=0;//定义变量
cin>>n; //输入范围(我想你应该知道整形的范围)
if(n&g