兔子生小兔子的简单java实现
问题:现有一直兔子,1个月能长大成熟,之后每个月可以生一只小兔子,小兔子长大也可以生小兔子.问,5个月后,一共有多少只兔子.思考:兔子是对象,养兔子需要一个场地,也就是java中的容器,考虑使用list.问题需要知道兔子的数量,所以考虑使用ArrayList,直接返回size().首先需要创建类,是建立兔子的类,还是场地的类呢?我考虑创建场地的类,原因1,场地是大环境,可以容纳兔子,而兔子只是在大
·
问题:
现有一直兔子,1个月能长大成熟,之后每个月可以生一只小兔子,小兔子长大也可以生小兔子.
问,5个月后,一共有多少只兔子.
思考:
兔子是对象,养兔子需要一个场地,也就是java中的容器,考虑使用list.
问题需要知道兔子的数量,所以考虑使用ArrayList,直接返回size().
首先需要创建类,是建立兔子的类,还是场地的类呢?
我考虑创建场地的类,
原因1,场地是大环境,可以容纳兔子,而兔子只是在大环境中的一个元素.
原因2,问题答案需要的兔子数量,而这个数量就是场地的size();
思路:
首先像上帝模式一样,一甩手创建一块土地,就是ArrayList,
扔下一个卵,也就是第一只兔子的雏形.
这个雏形1个月后长成大兔子,
大兔子之后每个月土地就冒出一个卵,
上帝开始每个月来视察一次,也即时间递增,外层循环.
每个月的视察来看土地里的所有兔子的数量,以及卵的数量,也就是土地的size().
import java.util.ArrayList;
import java.util.Scanner;
class Rabbit {
private int age = 0;
private int isAdult = 1;
private boolean b = false;
public void grow() {
this.age++;
}
public boolean adult() {
if (this.age > isAdult) {
b = true;
}
return b;
}
}
public class RabbitCal {
private static ArrayList<Rabbit> list = new ArrayList<Rabbit>();
public void init() {
list.add(new Rabbit());
}
public int getSize() {
return list.size();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
RabbitCal env = new RabbitCal();
env.init();
int count = 0;
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
for (int i = 0; i < month; i++) {
for (Rabbit r : RabbitCal.list) {
r.grow();
if (r.adult()) {
count ++;
}
}
for (int j = 0 ; j < count; j++) {
RabbitCal.list.add(new Rabbit());
}
count = 0;
}
sc.close();
System.out.println(env.getSize());
}
}
运行输入5
运行结果 8
更多推荐
已为社区贡献1条内容
所有评论(0)