用Java写出三份代码有一种神奇的动物,出生后第3个月起每个月生一对,小动物长到第三个月后每个月又生一对,假如动物都不死,每个月动物总数为多少? 输入n为第多少个月,输出这个月的动物总数
时间: 2024-10-22 13:03:04 浏览: 13
这是一个经典的动态规划问题,可以用递推的方式来解决。在Java中,你可以编写如下的函数:
```java
public class AnimalCount {
public static int animalTotal(int n) {
if (n <= 0) {
throw new IllegalArgumentException("月份输入不合法");
}
// 初始化基础情况
long count = 0;
if (n == 1 || n == 2) {
count = 1; // 初始阶段只有出生的小动物
} else {
count = 2; // 第三个月起每月新增一对
}
// 从第四个月开始,每个月增加的数量是上个月的一对加上老的一对(因为它们各自都会生一对)
for (int i = 4; i <= n; i++) {
count += count * 2;
}
return (int) count; // 返回结果并转换为整数,因为动物数量不会超过整数范围
}
public static void main(String[] args) {
int months = 12; // 示例输入
System.out.println(animalTotal(months));
}
}
```
当运行`animalTotal(n)`,它会计算出第n个月的动物总数。
阅读全文