古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少。
分析题意可知:
在第一个月时是一对小兔子。
第二个月长大变成大兔子共一对兔子。
第三个月大兔子生小兔子共有2(1+1=2)对。
第四个月大兔子生出小兔子加上本身的一对大兔子,小兔子变成大兔子,是2对大兔子,一对小兔子,共3(1+2=3)对。
第五个月2对大兔子生出2对,小兔子长成大兔子,共5(2+3=5)对。
由于刚开始需要3月才能生产在一月二月时只有一对兔子,3月后每月兔子为2,3,5,8……可知从三月后每月兔子对数为前两月兔子对数之和。
代码如下:
import java.util.Scanner;
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);
}
}
}
到此完成本题。