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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈从宾 中级黑马   /  2012-3-21 18:53  /  2345 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛, 生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少头母牛?
public static class Cow
{
        private int age;
        public Cow afterYear()
        {
                age++;
                return age > 2 ? new Cow() : null;
        }       
       
        public static void showTotalCowNum(int n)
        {
                List<Cow> list = new ArrayList<Cow>();
                list.add(new Cow());

                for (int i = 0; i < n; i++)
                {
                        int cowCount = list.size();
                        for (int j = 0; j < cowCount; j++)
                        {
                                Cow cow = list.get(j).afterYear();
                                if (cow != null)
                                {
                                        cow.afterYear();
                                        list.add(cow);
                                }
                        }
                }
                System.out.println(n + "年后,共有:" + list.size());               
        }
}

如何将这里的递归算法改为非递归的呐???

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

3 个回复

倒序浏览
  1. public class CowNumber {
  2.     public static void main(String[] args) {
  3.         System.out.println("第1年的牛数:    1");
  4.         System.out.println("第2年的牛数:    1");
  5.         int f1 = 1, f2 = 1, f, Y=100;
  6.             for(int i=3; i<=Y; i++) {
  7.             f = f2;
  8.             f2 = f1 + f2;
  9.             f1 = f;
  10.             System.out.println("第" + i +"年的牛数: "+f2);
  11.         }
  12.     }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
看了好一会也没看到哪里有递归。lz这个算法经典啊,比我的要精简很多,看到
  1. public Cow afterYear()
  2.         {
  3.                 age++;
  4.                 return age > 2 ? new Cow() : null;
  5.         }      
复制代码
禁不住赞一个。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
{:soso_e163:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马