预习思考题:假如兔子长大到10个月就不再生小兔子了呢?假如兔子长到15个月就老死了呢?
package cn.rabbitProblem;
import java.util.ArrayList;
import java.util.Scanner;
/**有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子长
大到10个月就不再生小兔子了呢?假如兔子长到15个月就
老死了呢?
*/
class Rabbit {
private int age;
public Rabbit(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Rabbit givebirthRabbits() throws Exception {
if (this.age > 2 && this.age < 10) {
Rabbit baby = new Rabbit(0);
return baby;
}else{
throw new Exception();
}
}
public static void main(String[] args){
ArrayList<Rabbit> rabbits = new ArrayList<>();
Rabbit e = new Rabbit(1);
rabbits.add(e);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入月份:");
int month = scanner.nextInt();
for (int i = 1; i < month; i++) {
for (int j = 0; j < rabbits.size(); j++) {
Rabbit current = rabbits.get(j);
current.setAge((current.age + 1));
if (current.age == 15) {
rabbits.remove(current);
} else {
try {
Rabbit new_baby=current.givebirthRabbits();
rabbits.add(new_baby);
}catch(Exception e1){
e1.printStackTrace();
}
}
}
}
System.out.println(month + "月份共有" + (rabbits.size() * 2) + "只兔子");
}
}