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;
}