我正在编写一个C ++程序来生成一系列Fibonacci数。这是1,1,2,3,5 ......系列。本系列的第300个数字是359579325206583560961765665172189099052367214309267232255589801.这远远超出int
甚至unsigned long long
的限制。我怎样才能继续代表如此庞大的数字?
这是我的代码:
unsigned long long FibLoop(int n)
{
// Keep track of previous two numbers
unsigned long long prev[2];
prev[0] = 1;
prev[1] = 1;
// Loop
for(int i = 2; i <= n; i++)
{
prev[i % 2] = prev[0] + prev[1];
cout << i << "\t" << prev[i % 2] << endl;
}
// Return
return prev[n % 2];
}