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