我对 C++ 还是很陌生,所以决定制作一个斐波那契数列。它奏效了(哇!),但效果不如我所愿。
我的意思是说例如我告诉我的程序计算我将得到的序列的前 10 项
“0, 1, 1” 然后我必须为每个额外的数字按 enter 直到它达到十,在这种情况下程序返回 0 并结束。
如何让程序显示我想要的所有数字,而无需为每个额外的数字按回车键?
这是我的脚本:
#include <iostream>
using namespace std;
int main()
{
int FibNum;
cout << "How many numbers of the Fibonacci Sequence would you like to see? \n\n";
cin>> FibNum;
cin.ignore();
int a = 0;
int b = 1;
int c = 2;
cout << "Fibonacci Sequence up to " << FibNum << " terms.\n\n";
cout << a << "\n" << b << "\n";
for (int c = 2; c < FibNum; c++) {
int d = a + b;
cout << d;
cin.ignore();
a = b;
b = d;
}
}
在此先感谢您的帮助!
附言此外,如果您发现我正在做的任何糟糕的事情,请随时纠正我,我很清楚我可能做错了很多,我只是想学习。 :]
一些事情:
1) 删除 int c = 2;
当你重新定义 c
在for
里面循环。
2) 删除行 cin.ignore();
: 在你的 for
循环:这将解决您的“输入”问题;该行等待一些输入然后忽略它。
3) 在输出中放置一些空白:例如cout << d << ' '
所以你的号码是分开的。
4) [确认 vincent_zhang] 考虑转到 uint64_t
作为 a
的数据类型, b
, 和 d
.这是 C++11 中的标准类型。它是一个 64 位无符号整数类型;足以处理大量术语。
还有一件小事,与个人意见接壤,
5) 使用++c
而不是 c++
因为前者永远不会运行得更慢,因为至少在概念上,后增量必须获取原始值的拷贝。
我是一名优秀的程序员,十分优秀!