//代码如何下
package test01;
import java.util.Scanner;//导入模块
public class Test3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("请输入你想要的当月的月数:");
int n= s.nextInt();
System.out.println("当第"+n+"个月后,兔子有" + Sum(n) + "对");
}
private static int Sum(int n){
if(1 == n || 2 == n){
return 1;
}else{
return (Sum(n-1) + Sum(n-2));
}
}
}
说明:
月数 兔子对数 说明
1 1 第一个月一对
2 1
3 1 +1 第一对从出生起第三个月生第二对
4 1+1 +1 三个月满了后,第一对每个月生一对
5 1 +1 +1 +1+1 第二对兔子满三月开始生一对
6 1+1 +1+1 +1+1 +1+1 第二对兔子每月开始生一对
7 ......
兔子每月个数:1 ,1 ,2,3,5,8
规律就是,前两月的和就是第三月,得出:f(n)=f(n-1)+f(n-2)
第一月和第二月是基数,所以从第三月开始相加,第一二月总数为一只