- ??:题目来了!有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
??:来看看会发生什么…
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1bf9ba80af8048ac4b10bc6f61ead24b.png)
不难看出,当月份数大于等于2时,该月的兔子对数都是前两个月的兔子对数的和
countRabbit(month) = countRabbit(month - 1) + countRabbit(month - 2);
一个递归式,代码如下:
public class RabbitProblem {
public static int sum = 1;
public static int countRabbit(int month) {
if (month == 0 || month == 1) {
return sum;
}
return countRabbit(month - 1) + countRabbit(month - 2);
}
public static void main(String[] args) {
System.out.println("第1个月兔子对数" + countRabbit(0));
System.out.println("第2个月兔子对数" + countRabbit(1));
System.out.println("第3个月兔子对数" + countRabbit(2));
System.out.println("第4个月兔子对数" + countRabbit(3));
System.out.println("第5个月兔子对数" + countRabbit(4));
System.out.println("第6个月兔子对数" + countRabbit(5));
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/992e98cd5cb22404c196815605c601c3.png)