2 回答

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
a并且最初b等于 1 ,因此在循環(huán)的第一次迭代中,該語(yǔ)句什么也不做。但是讓我們看看在以后的迭代中會(huì)發(fā)生什么:
Initial state:
a = 1
b = 1
c = 0
Iteration 1:
c = 1 + 1 = 2
b = a = 1
a = c = 2
Iteration 2:
c = 1 + 2 = 3
b = a = 2
a = c = 3
Iteration 3:
c = 2 + 3 = 5
b = a = 3
a = c = 5
本質(zhì)上,a存儲(chǔ)序列中的前一個(gè)數(shù)字,而b存儲(chǔ)倒數(shù)第二個(gè)。由于序列的前 2 個(gè)數(shù)字是1, 1,b將在兩次迭代中保持為 1,但稍后會(huì)更改。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
Fn = Fn-1 + Fn-2,即從a = 1and開(kāi)始b = 1,您必須計(jì)算下一個(gè)斐波那契數(shù)并將 and 移動(dòng)a到b右邊的一個(gè)位置。
public static long fibonacci(int n) {
n = Math.abs(n);
if (n == 0)
return 0;
if (n < 3)
return 1;
long a = 1;
long b = 1;
long c = 0;
for (int i = 3; i <= n; i++) {
c = a + b;
b = a;
a = c;
}
return c;
}
添加回答
舉報(bào)