我需要询问用户屏幕上显示的Fibonacci序列数量。我已经完成了所有工作,但由于我一次在屏幕上打印两个数字,它打印的是用户输入的两倍。我只想将用户输入的数字除以2,但不能用于奇数。如果有人能想到这个解决方案,谢谢。 http://en.wikipedia.org/wiki/Fibonacci_number< - 斐波那契数字如果你不知道
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << "How many numbers do you want generated in the Fibonacci sequence.\n";
int num;
cin >> num;
int num1 = 0, num2 = 1;
int sum;
int f = 1;
while (f <= num)
{
cout << num1 << setw(5) << num2 << setw(5);
sum = num1 + num2;
num1 = sum;
num2 = sum + num2;
++f;
}
}
答案 0 :(得分:0)
由于您一次只生成两个数字,因此您需要一次增加计数器2:
int f = 0;
for (; f < num; f += 2) {
// body
}
如果num
是偶数,则打印最后一个
if (f == num) {
// print num1
}
答案 1 :(得分:0)
循环类似:
while ( f <= num )
{
cout << num1 << setw(5);
if ( ++f <= num )
{
cout << num2 << setw(5);
/// rest of calcs
++f;
}
}
答案 2 :(得分:0)
在Fibonacci系列中,你需要至少2,任何更少没有意义。超过2个你只需打印总和。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << "How many numbers do you want generated in the Fibonacci sequence.\n";
int num;
cin >> num;
int num1 = 0, num2 = 1;
int sum;
cout << num1 << setw(5) << num2 << setw(5);
int f = 3;
while (f <= num)
{
sum = num1 + num2;
cout << sum << setw(5);
num1 = num2;
num2 = sum;
++f;
}
cout << std::endl;
}