本帖最后由 施家雄 于 2013-4-10 23:14 编辑
查了一些资料,再加上自己的一些想法,写出来的。- import java.util.ArrayList;
- import java.util.Scanner;
- /*
- * 主要要定义一个可变数组来存储变化的牛的数量。要查看第几年有多少牛,从键盘中输入一个年数
- * 就能知道第几年有几头牛了。
- *
- * */
- public class CowTest {
- //定义年龄为0以后每年加1
- private int age = 0;
- //定义方法,判断过了3年就能生小牛
- public boolean isCreatSmallCow(){
- return (age >= 3)?true:false;
- }
- //过一年age自增
- public void addYear(){
- age++;
- }
- public static void main(String[] args) {
-
- //定义一个可变数组,对每年的出生的牛加以前的牛保存起来
- ArrayList<CowTest> list = new ArrayList<CowTest>();
-
- //这是第一头牛
- list.add(new CowTest());
-
- System.out.print("请输入这是第几年:");
- //定义一个键盘
- Scanner input=new Scanner(System.in);
-
- //从键盘中输入年数
- int yearsCount=0;
- try{
- yearsCount = input.nextInt();
- }catch(Exception e)
- {
- System.out.println("你输入的数字不合法!");
- }
- //因为不知道过了几年,所以定义循环语句
- for(int i=1;i<=yearsCount;i++){
- int rowNum = list.size(); //可变数组中的牛的数量
- for(int j = 0; j<rowNum; j++){
- CowTest cow = list.get(j);
- cow.addYear(); //过一年就自增
- if(cow.isCreatSmallCow()){ //若是第三年就有小牛出生
- list.add(new CowTest());
- }
- }
- }
-
- System.out.println(yearsCount+"年后总共有"+list.size()+"头牛。");
- }
- }
复制代码 |