作者:佚名 时间:2023-09-11 09:18:50 阅读:(19)
今天云梦编程为大家分享一下java经典实例:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?有需要的小伙伴可以参考一下:
这个问题其实就是一个菲波拉契数列问题: 实际月份 1 2 3 4 5 6 7 8 幼仔对数 1 0 1 1 2 3 5 8 成兔对数 0 1 1 2 3 5 8 13 总体对数 1 1 2 3 5 8 13 21 幼仔对数=前月成兔对数 成兔对数=前月成兔对数+前月幼仔对数 总体对数=本月成兔对数+本月幼仔对数
前面相邻两项之和,构成了后一项
(1)、使用递归方法进行编码:
public static void main(String[] args) { System.out.println("第24个月的兔子对数: " + fun(24)); } private static int fun(int month) { if (month <= 0) { return 0; } else if (month <= 2) { return 1; } return fun( month - 1) + fun( month - 2); }
(2)、使用循环方法进行编码:
public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, temp; for (int month = 3; month <= 24; month++) { temp = f2; f2 = f1 + f2; f1 = temp; System.out.println("第" + month + "个月的兔子对数: " + f2); } }
以上就是云梦编程为大家介绍的有一对兔子,从出生后第3个月起每个月都生一对兔子相关问题的解决方法,了解更多相关文章请关注云梦编程网!