A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.ArrayList;
import java.util.Iterator;

/**
* •不死神兔
                •故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。
                •在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,
                •问:一对刚出生的兔子,一年内繁殖成多少对兔子?
                •1 1 2 3 5 8 13
                •第一个月一对小兔子        1
                •第二个月一对大兔子        1
                •第三个月一对大兔子生了一对小兔子        2
                •第四个月一对大兔子生了一对小兔子
                •一对小兔子长成大兔子        3
                •第五个月两对大兔子生两对小兔子
                •一对小兔子长成大兔子        5
*/
class Robit{
         int idkey;
         int age;
         public  Robit(int idkey,int age ) {
                this.idkey=idkey;
                this.age=age;
        }
         public void grow() {//兔子成长成大兔子  
                idkey=2;
        }
         
         
}
public class text12Robiit {
   static ArrayList<Robit> arryArrayList =new ArrayList<>();
   public static void main(String arg[]){
            Robit robitant=new Robit(1,0);
            arryArrayList.add(robitant);
            for (int i = 0; i < 12; i++) {
                     for (int j=0;j<arryArrayList.size();j++) {//遍历兔群
                                if (arryArrayList.get(j).idkey==1) {//还是幼兔
                                if (arryArrayList.get(j).age>=1) {//长了一个月了就,该长达了
                                        arryArrayList.get(j).grow();
                                }
                                }else {
                                        bornRobit(arryArrayList.get(j));//已经成兔 ,又一个月 就生兔宝宝
                                }
                                arryArrayList.get(j).age++;
                        }
                }
  System.out.print("最后"+arryArrayList.size());
   
   }
private static void bornRobit(Robit robit){
         if (robit.idkey==2) {
                 Robit robitl=new Robit(1,0);
                 arryArrayList.add(robitl);
        }
         
         
         
}
   

}

2 个回复

倒序浏览
牛人!我们讲到递归这题很简单.像你这样搞还是头一次见
回复 使用道具 举报
实际上 是封装了兔子对象   在生兔子 这个方法里 实际上 还是一个递归
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马