0
这个代码在n = 46后没有返回正确的答案。我能做些什么来解决这个问题以获得更高的第n项?斐波纳契迭代:找到n> 50的斐波那契数列的第n项
public static long fibonacciIterative(long n)
{
if(n <= 1) {
return n;
}
int x = 1;
int y = 1;
for(int i=2; i<n; i++)
{
int z = x;
x+= y;
y = z;
}
return x;
}
谢谢大家的好评。我在问完问题后立即找到了代码,我就明白了。
开始通过改变'x','y'和'z'为'long' 。 – Eran
提示:您认为“int”可以表示的最大数目是多少?斐波纳契数字超过46是多大? – lurker
'int'将** - 2^31 **中的数字保存到** 2^31-1 **中,因为'int'由Java中的32位表示。任何斐波那契数n> 46的术语超出这些限制。你可以使用64位的“long”,并保存更大的数字。如果您需要超过“长”的限制,BigInteger会更大。 – Carlton