package 生兔子问题答案;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author 何虎
*
*/
public class CalculateRabbit
{
public static void main(String[] args)
{
List<Rabbit> rabbitList = new ArrayList<Rabbit>(); // 存放兔子
Rabbit r = new Rabbit(); // 初始有一对兔子
r.setAge(0);
rabbitList.add(r);
int month = 10;
for (int i = 1; i <= month; i++) // 成长月数
{
for (int j = 0; j < rabbitList.size(); j++)
{
Rabbit rb = (Rabbit) rabbitList.get(j);
rb.setAge(rb.getAge() + 1);
Rabbit useRabbit = new Rabbit();
useRabbit = useRabbit.makeRabbit(rb); // 看看能不能生兔子
if (useRabbit != null)
{
rabbitList.add(useRabbit); // 兔子生出来放大集合里
}
}
System.out.println("第" + i + "个月生" + rabbitList.size() + "对兔子");
}
}
}
<pre name="code" class="java">package 生兔子问题答案;
/**
*
* @author 何虎
*
*/
public class Rabbit
{
private int age;
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
/*
* 生兔子方法
*/
public Rabbit makeRabbit(Rabbit rb)
{
Rabbit r = null;
if(rb.getAge() >=3) //兔子成长到三个月就生一只小兔子
{
r = new Rabbit();
r.setAge(0);
}
return r;
}
}