需要帮助使用C++清理斐波纳契序列

0 c++ fibonacci

我仍然是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如果你注意到我正在做的任何可怕的事情请随时纠正我,我很清楚我可能做错了很多,我只是想学习.:]

Bat*_*eba 5

一些东西:

1)在循环内int c = 2;重新定义时删除.cfor

2)放下线cin.ignore();:在你的for循环中:这将解决你的"输入"问题; 该行等待一些输入然后忽略它.

3)在输出中放置一些空格:例如cout << d << ' ',你的数字是分开的.

4)[确认vincent_zhang]考虑移动到uint64_t作为数据类型a,bd.这是C++ 11中的标准类型.它是64位无符号整数类型; 足以满足大量条款.

还有一件小事,接近个人意见,

5)使用++c而不是c++前者永远不会运行得慢,因为在概念上至少,后增量必须采用原始值的副本.