我想打印Fibonacci序列中的前100個數字。我的程序打印直到20個左右的數字比數字變成負數。斐波那契序列溢出,C++
有人可以向我解釋這一點,並提供修復?
感謝,
/*Fibonacci sequence*/
#include <iostream>
using namespace std;
int main(){
long int i, fib;
int firstNum=0, secondNum=1;
cout << firstNum << endl;
cout << secondNum << endl;
for (i=0; i < 100; i++){
fib = firstNum + secondNum;
firstNum = secondNum;
secondNum = fib;
cout << fib << endl;
}
return 0;
}
最大值的'int'可以存儲爲+2147483647。嘗試使用'unsigned long long',即使那麼我認爲在達到100之前你可能會溢出。 –
在第20次fabonacci num之後,它跨越了int的範圍,那麼你可以使用long long int,但是它也會存儲到91 fabonacci。所以你可以將它們存儲在數組中,或者使用Bigint。 – wrangler
@JonathanPotter \t int可以存儲的最大值*至少是* +2147483647。 'int'可能大於32位。 –