我仍然是C++的新手,并决定制作斐波那契序列.它起作用了(哇!)但它不能像我想的那样好用.
我的意思是说,例如我告诉我的程序计算我将获得的序列的前10个术语
"0,1,1",然后我必须按下每个附加数字的输入,直到它达到10,在这种情况下程序返回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;
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
Ps如果你注意到我正在做的任何可怕的事情请随时纠正我,我很清楚我可能做错了很多,我只是想学习.:]
一些东西:
1)在循环内int c = 2;重新定义时删除.cfor
2)放下线cin.ignore();:在你的for循环中:这将解决你的"输入"问题; 该行等待一些输入然后忽略它.
3)在输出中放置一些空格:例如cout << d << ' ',你的数字是分开的.
4)[确认vincent_zhang]考虑移动到uint64_t作为数据类型a,b和d.这是C++ 11中的标准类型.它是64位无符号整数类型; 足以满足大量条款.
还有一件小事,接近个人意见,
5)使用++c而不是c++前者永远不会运行得慢,因为在概念上至少,后增量必须采用原始值的副本.