有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
由图可知,
第一个月是小兔子,是一对小兔子
第二个月从小兔子变成大兔子,是一对大兔子
第三个月大兔子生出小兔子加上本身的一对大兔子,是一对大兔子 一对小兔子 共2对兔子 1+1 = 2
第四个月大兔子生出小兔子加上本身的一对大兔子,小兔子变成大兔子,是2对大兔子,一对小兔子,共3对兔子 2 + 1 = 3
第五个月2对大兔子生出2对,小兔子长成大兔子,共5对兔子 2 + 3 = 5
可知每对兔子需要一个月长大,两个月才能生产
由此可知 第三个月以后每个月的兔子对数等于前两个月的兔子对数相加
附上代码
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int month = sc.nextInt();
Test t = new Test();
System.out.println("第" + month + "个月有" + t.test(month) + "只兔子。");
}
public int test(int month) {
if (month == 1 || month == 2) {
return 1;
} else {
// 递归计算出前一个月和前两个月的合
return test(month - 1) + test(month - 2);
}
}
}