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就不行吗,能讲解下吗
古典问题,斐波那契兔子的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注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; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报