【发布时间】:2021-11-30 06:13:21
【问题描述】:
我想打印斐波那契数列中的前 100 个数字。我的程序打印出大约 20 个数字,然后数字变为负数。
有人可以向我解释一下并提供解决方法吗?
谢谢,
/*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。
-
@JonathanPotter int 可以存储的最大值至少 +2147483647。
int可能大于 32 位。