斐波那契序列仅在while循环中起作用,而不是“for”循环

时间:2013-08-12 19:27:46

标签: c++

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

1 个答案:

答案 0 :(得分:3)

您的输出只需3次迭代。

第一个Fibonacci数字是(1), 1 2 3

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