public class BornRabit
{
List<Rabbit> rabbits = new ArrayList<>();
private void born(int month)
{
for(int i=1;i<=month;i++)
{
for (Rabbit rabbit : rabbits)
{
rabbit.setAge(rabbit.getAge()+1);
}
List<Rabbit> rabbits2 = new ArrayList<>();
rabbits2.addAll(rabbits);
for(int j=0;j<rabbits2.size();j++)
{
if (rabbits2.get(j).getAge() >= 3)
{
String id =rabbits2.get(j).getId()+":"+ i+"-"+j;
rabbits.add(new Rabbit(id,0));
System.out.println(i+" month,"+rabbits2.get(j).getId()+" born 1, "+id+", all "+rabbits.size());
}
};
}
}
private void init(){
rabbits.add(new Rabbit("0-0",0));
born(10);
System.out.println("all "+rabbits.size());
}
public static void main(String[] args){
new BornRabit().init();
}
}
class Rabbit
{
private String id;
private int age;
public Rabbit(String id,int age)
{
this.id = id;
this.age = age;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
打印结果:
3 month,0-0 born 1, 0-0:3-0, all 2
4 month,0-0 born 1, 0-0:4-0, all 3
5 month,0-0 born 1, 0-0:5-0, all 4
6 month,0-0 born 1, 0-0:6-0, all 5
6 month,0-0:3-0 born 1, 0-0:3-0:6-1, all 6
7 month,0-0 born 1, 0-0:7-0, all 7
7 month,0-0:3-0 born 1, 0-0:3-0:7-1, all 8
7 month,0-0:4-0 born 1, 0-0:4-0:7-2, all 9
8 month,0-0 born 1, 0-0:8-0, all 10
8 month,0-0:3-0 born 1, 0-0:3-0:8-1, all 11
8 month,0-0:4-0 born 1, 0-0:4-0:8-2, all 12
8 month,0-0:5-0 born 1, 0-0:5-0:8-3, all 13
9 month,0-0 born 1, 0-0:9-0, all 14
9 month,0-0:3-0 born 1, 0-0:3-0:9-1, all 15
9 month,0-0:4-0 born 1, 0-0:4-0:9-2, all 16
9 month,0-0:5-0 born 1, 0-0:5-0:9-3, all 17
9 month,0-0:6-0 born 1, 0-0:6-0:9-4, all 18
9 month,0-0:3-0:6-1 born 1, 0-0:3-0:6-1:9-5, all 19
10 month,0-0 born 1, 0-0:10-0, all 20
10 month,0-0:3-0 born 1, 0-0:3-0:10-1, all 21
10 month,0-0:4-0 born 1, 0-0:4-0:10-2, all 22
10 month,0-0:5-0 born 1, 0-0:5-0:10-3, all 23
10 month,0-0:6-0 born 1, 0-0:6-0:10-4, all 24
10 month,0-0:3-0:6-1 born 1, 0-0:3-0:6-1:10-5, all 25
10 month,0-0:7-0 born 1, 0-0:7-0:10-6, all 26
10 month,0-0:3-0:7-1 born 1, 0-0:3-0:7-1:10-7, all 27
10 month,0-0:4-0:7-2 born 1, 0-0:4-0:7-2:10-8, all 28
all 28
从id可以看出妈是谁,是第几个月生的,有几个兄弟。