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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pengbeilin 中级黑马   /  2015-8-24 14:10  /  176 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 pengbeilin 于 2015-8-24 16:16 编辑

  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3. import java.util.ListIterator;

  4. /**
  5. *
  6. */

  7. /**
  8. * 一对兔子过3个月就可以生一对兔子(一对雌雄),接下的每一个月都可以生一对兔子(一对雌雄),
  9. * 然后新生的每对兔子过3个月也可以生兔子
  10. * 问:13个月后有多少对兔子
  11. * @author Administrator
  12. *思路:
  13. *1 我不知道用递归怎么写,写了个循环
  14. *2 首先创建兔子对象,定义一个 age (我们这里是以月做为单位),构造函数就是一个参数 age
  15. *3 每对兔子都不同对象,我这里用ArrayList 存储兔子对象
  16. *4 最开始只有一对兔子 那我们就往里面存一个兔子
  17. *5 用for循环  迭代集合 每过一个月就迭代一次
  18. *6 迭代每个对象的时候先用setAge修改兔子的age ,然后getAge获取兔子
  19. *        如果兔子age>=3 那就再往集合中添加一个兔子对象
  20. */
  21. public class tuzi {

  22.         /**
  23.          * @param args
  24.          */
  25.         public static void main(String[] args) {
  26.                 // TODO Auto-generated method stub
  27.                 int n =13;//月份
  28.                 ArrayList<tuziBB> arr = new ArrayList<tuziBB>();
  29.                 arr.add(new tuziBB(0));//存了一对兔子
  30.                 //每过一个月 迭代一次集合
  31.                 for (int i = 0; i < n; i++) {
  32.                         //这里用的是ListIterator迭代器, 因为迭代的时候要往集合中添加元素
  33.                         ListIterator<tuziBB> it = arr.listIterator();
  34.                         while(it.hasNext()){
  35.                                 tuziBB tzb = it.next();
  36.                                 tzb.setAge(tzb.getAge()+1);//兔子age+1
  37.                                 //如果兔子age>=3 那么就可以生一对小兔子
  38.                                 if(tzb.getAge()>=3){
  39.                                         it.add(new tuziBB(0));
  40.                                 }
  41.                         }
  42.                 }
  43.                 System.out.println(arr.size());//13个月后兔子的总数
  44.         }
  45.         
  46. }
  47. //兔子对象
  48. class tuziBB{
  49.         private int age=0;
  50.         tuziBB(int age){
  51.                 this.age = age;
  52.         }
  53.         public int getAge() {
  54.                 return age;
  55.         }
  56.         public void setAge(int age) {
  57.                 this.age = age;
  58.         }
  59.         
  60. }
复制代码

我真的不会递归~!!!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马