题目---牛生牛---面向对象

[code]
农场一头小母牛,
每年生头小母牛。
母牛五岁产母牛,
二十年上多少牛?

/**
* 一群牛的故事
*/
import java.util.ArrayList;
import java.util.List;
/**
* 母牛
* @author dinghun8leech
*/
class Cow {
/** age 年龄 */
private int age;
/**
* 默认构造方法,创建(生产)一头年龄为1岁的小母牛
*/
public Cow() {
age = 1;
}
/**
* 成长,母牛年龄+1
*/
public void grow() {
age++;
}
/**
* 生产,当母牛年龄在5岁或以上时产生1头小母牛
* 年龄低于5岁时无法生产,返回null
* @return Cow 一头年龄为1岁的小母牛
*/
public Cow produce() {
if (age > 4) {
return new Cow();
}
return null;
}
}
/**
* 怪兽牧场
* @author dinghun8leech
*/
public class Farm {
public static void main(String [] args) {
int year = 20;//测试年限
int init_cow_count = 1;//牧场起始小母牛数量
List<Cow> cows = new ArrayList<Cow>();//牛棚
for (int i=0;i<init_cow_count;i++) {
cows.add(new Cow());
}
for (int i=0;i<year;i++) {
int cow_count = cows.size();
for (int j=0;j<cow_count;j++) {//每年都遍历一下牛棚中的所有牛
Cow cow = cows.get(j);
Cow newCow = cow.produce();
if (newCow != null) {//看看当前年龄能否生产小牛
cows.add(newCow); //这里的编程技巧,cows是扩充的,用一个变量来控制下标
}
cow.grow();//每年都会成长
}
}
System.out.println("怪兽牧场"+year+"后的母牛数从"+init_cow_count+"头增长到"+cows.size()+"头。");
}
}


//下面用递归方法,变成纯算法问题。。。。

[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值