【发布时间】:2019-01-18 01:05:47
【问题描述】:
我需要弄清楚如何控制程序的流程,以便在用户插入大量数字时程序不会崩溃。该程序的目标是根据用户的输入计算斐波那契数列。
#include <iostream>
using namespace std;
int main() {
int n;
cout << " Please enter number of fibonacci number series you wanna see ";
cin >> n;
int num1=0;
int num2=1;
cout << num1 << " " << num2 << " ";
if(num1+num2<=32756)
for (int i=0; i<=n-1; ++i)
{
int num2Temp=num2;
cout << num1+num2 << " ";
num2=num1+num2;
num1=num2Temp;
}
else
cout << " TOO BIG " << endl;
return 0;
}
我确实计算了斐波那契数列,但是,它不遵循 if 语句并在超过 32756 时停止程序。我理解它为什么这样做,因为 num1+num2 没有更新,所以程序理解它 0 +1,没有每个循环的更新版本。但我没有具体的想法来修复该程序。
【问题讨论】:
-
你的if语句被检查,0+1小于32756,你再也不会检查了。
-
谢谢,但是在我添加了 for(;;) 循环后,即使我要求 3,它仍然会给出太大