我的代码有什么问题!我想打印值小于 4000000 的斐波那契数列

Whats wrong in my code! I want to print Fibonacci Series with values less than 4000000

我觉得我的循环执行有问题! 这是我的代码。

#include <iostream>
using namespace std;

int main()
{
    int i=2;
    long long int FiboNo[100];
    FiboNo[0] = 1;
    FiboNo[1] = 2;
    do{
        FiboNo[i]=FiboNo[(i-1)]+FiboNo[(i-2)];
        cout<<FiboNo[i]<<endl;
        i++;
    }while(FiboNo[i]<4000000);
    return 0;
}
do {
    FiboNo[i] = FiboNo[(i - 1)] + FiboNo[(i - 2)];
    cout << FiboNo[i] << endl;
    i++;
} while (FiboNo[i] < 4000000);

您在比较之前递增 i

do {
    FiboNo[i] = FiboNo[(i - 1)] + FiboNo[(i - 2)];
    cout << FiboNo[i] << endl;
} while (FiboNo[i++] < 4000000);

就是你想做的。

这是正在发生的事情:

i 2
fibo[2] is 2
now i is 3
fibo[3] is 0

这没有问题,当fibo[someIndex]达到限制时。出不来,因为你的值永远是一个0.