public class RabbitBornRabbit {
public static void main(String[] args) {
System.out.println("请输入想要计算的月份:");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
if (month == 1 || month == 2) {
System.out.println("兔子的对数为" + 1);
} else {// 假设i = 3
int number = 1;// 二月的兔子数
int bornNumber = 1;// 三月出生的兔子数即一月出生的兔子数
for (int i = 3; i <= month; i++) {
number = number + bornNumber;
// 三月的兔子数 = 二月的兔子数 + 三月出生的兔子数
bornNumber = number - bornNumber;
// 四月出生的兔子数 = 三月的兔子数 - 三月出生的兔子数
// 第一个bornNumber是四月出生兔子数 即二月出生的兔子数
// 第二个bornNumber是三月出生的兔子数 即一月出生的兔子数
}
System.out.println("兔子的对数为" + number);
}
}
}
参考答案解:
public class Prog1{
public static void main(String[] args){
int n = 10;
System.out.println("第"+n+"个月兔子总数为"+fun(n));
}
private static int fun(int n){
if(n==1 || n==2)
return 1;
else
return fun(n-1)+fun(n-2);
}
}