for (int i = 3; i < date; i++) {
int f3;
f3 = f2;
f2 = f1 + f2;
f1 = f3;
System.out.println("第" + i + "月的兔子數量是:" + f2);
}
我這樣寫的一串判斷,為什麼 f1 = f3; f3=f1就不行嗎,能講解下嗎
f3是作為臨時變量的,只在for循環中使用,f1,f2記錄前兩輪計算的結果,而且需要考慮int長度不足問題,建議使用long類型。
完整的代碼示例:
public static long fabonacci(int date){
long f1 = 0;
long f2 = 1;
for (int i = 3; i <= date; i++) {
long f3;
f3 = f2;
f2 = f1 + f2;
f1 = f3;
System.out.println("第" + i + "月的兔子數量是:" + f2);
}
return f2;
}