【发布时间】:2021-05-12 11:20:06
【问题描述】:
我正在创建一个 c++ 代码来输出两个数字之间的斐波那契数列。如果两个整数之间没有斐波那契数,我的部分代码将输出。例如,如果用户输入 9 和 12,代码将输出“无”。但是如果整数是 0 到 10,它会输出 0,1,1,2,3,5,8。以下是我目前的代码。
如果给定范围内没有任何斐波那契数,我将如何修复此代码以输出?现在,这段代码将读取(范围为 9 到 12),
NoneNoneNoneNoneNoneNone
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int high, low;
cout<< "Enter two integers: ";
cin>>low>>high;
int i=0;
int f1=0, f2 = 1,f3 = 1;
while (f1 <= high)
{
f1 = f2;
f2 = f3;
f3 = f1 + f2;
i++;
if (f1>=low && f1<=high){
cout<<setw(10)<<f1;
}
else{
cout<<"None";
}
if (i != 0 && ((i % 6) == 0)){
cout<<endl;
}
}
return 0;
}
【问题讨论】:
-
这个
if (f1 >= low){(第一个)说只有在f1大于下限时才计算斐波那契数。这真的是你想要的吗?当然,您要做的是计算斐波那契数,但如果它们大于下限,则仅打印它们。第二个if (f1>=low)的作用,第一个可以去掉。