-5
std::cout << "How many fibonacci numbers do you wish to calculate" << std::endl;
int amount = 0;
std::cin >> amount;

int num1 = 0;
int num2 = 1;


while(true){
for(int i = 0; i < amount; ++i){
    std::cout << num1 + num2 << std::endl;

    int Num2Temp = num2;
    num2 = num1 + num2;
    num1 = Num2Temp;
}
}

上面的代码完全按照我想要的方式工作。但是,当我拿走 while 循环并留在 for 循环中自行循环时;代码停止工作。打印的数字只是增加 1 ,并且不会产生我想要的斐波那契数列。我知道真实存在无限循环。但是,我只是想知道为什么 for 循环不起作用。这是我最初写的。

这是不起作用的代码:

    std::cout << "How many fibonacci numbes do you wish to calculate" << std::endl;
int amount = 0;
std::cin >> amount;

int num1 = 0;
int num2 = 1;

for(int i = 0; i < amount; ++i){
    std::cout << num1 + num2 << std::endl;

    int Num2Temp = num2;
    num2 = num1 + num2;
    num1 = Num2Temp;
}

输出:你想计算多少个斐波那契数 3 //我想计算到 3,是用户输入

1 2 3

4

1 回答 1

3

您的输出预计只有 3 次迭代。

第一个斐波那契数是 (1 )1、23

尝试运行超过 5 次迭代,之后3应该是5,然后是8之后

于 2013-08-12T19:35:33.513 回答