大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此blog能向大漠駝鈴一樣,給我方向和指引。
          Java,Php,Shell,Python,服務(wù)器運(yùn)維,大數(shù)據(jù),SEO, 網(wǎng)站開發(fā)、運(yùn)維,云服務(wù)技術(shù)支持,IM服務(wù)供應(yīng)商, FreeSwitch搭建,技術(shù)支持等. 技術(shù)討論QQ群:428622099
          隨筆 - 238, 文章 - 3, 評(píng)論 - 117, 引用 - 0
          數(shù)據(jù)加載中……

          經(jīng)典的農(nóng)夫養(yǎng)牛問題

          一個(gè)農(nóng)夫養(yǎng)了一頭牛,三年后,這頭牛每年會(huì)生出1頭牛,生出來的牛三年后,又可以每年生出一頭牛……問農(nóng)夫10年后有多少頭牛?n年呢?(用JAVA實(shí)現(xiàn))
          很有名的一道題,11樓放出最經(jīng)典的兩種解題思路,大家先試試
             1.

                    
          package cn.edu.nankai;
                    
          import java.util.HashSet;
                    
          import java.util.Set;

                    
          class Cow
                    {
                    
          private int age;

                    
          public Cow()
                    {
                    age 
          = 0;
                    }

                    
          public Cow bearCow()//生小牛
                    {
                    
          return new Cow();
                    }

                    
          public void grow()//每年牛齡加1
                    {
                    age 
          = age + 1;
                    }

                    
          public int getAge()
                    {
                    
          return age;
                    }
                    }
                    
          public class Main {
                    
          private static Set cowSet = new HashSet ();//牛圈,存放所有的牛

                    
          public static int check()//每年檢測一遍所有的牛,年齡要加一,并且夠歲數(shù)了要生效牛
                    {
                    Set newCowSet 
          = new HashSet ();
                    
          for(Cow cow : cowSet)
                    {
                    cow.grow();
          //年齡加一
                    if(cow.getAge() >= 3)
                    newCowSet.add(cow.bearCow());
          //夠歲數(shù)的生小牛
                    }
                    cowSet.addAll(newCowSet);
          //把所有生出來的小牛放牛圈里
                    return cowSet.size();
                    }
                    
          public static void main(String args[])
                    {
                    Cow cow 
          = new Cow();
                    cowSet.add(cow);
                    
          for(int i = 0; i < 10; i ++)
                    {
                    System.out.println(i
          +1 + " : " + check());
                    }
                    }

                    }
                    回復(fù)評(píng)論
                    刪除

             
          1.
                Smith的頭像     

                Smith 
          2009/10/31 21:12
                    
          public class Cow {
                    
          public static int coun = 1;

                    
          public static void main(String args[]) {
                    
          new Cow().cowY(10);
                    System.out.println(coun);
                    
          //System.out.println(Cow.getNum(10));
                    }


                    
          public static int getNum(int i) {
                    
          if (i < 3) {
                    
          return 1;
                    } 
          else {
                    
          return getNum(i - 1+ getNum(i - 2);

                    }

                    }
                    
          public void cowY(int year) {
                    
          int age = 1;
                    
          while (age <= year) {
                    age
          ++;
                    
          if (age <= year && age >= 3) {
                    coun
          ++;
                    cowY(year 
          - age);
                    }
                    }
                    }
                    }

          posted on 2009-10-31 22:25 草原上的駱駝 閱讀(493) 評(píng)論(1)  編輯  收藏 所屬分類: JAVA基礎(chǔ)知識(shí)

          評(píng)論

          # re: 經(jīng)典的農(nóng)夫養(yǎng)牛問題  回復(fù)  更多評(píng)論   

          沒看到11樓,轉(zhuǎn)帖別人的東西至少說明是轉(zhuǎn)帖,然后給出原文地址吧。

          不厚道!
          2009-11-01 20:32 | CoderDream
          主站蜘蛛池模板: 沅江市| 依安县| 富裕县| 方山县| 威宁| 雷波县| 绥芬河市| 罗甸县| 临洮县| 宁化县| 鹤峰县| 新竹市| 招远市| 南乐县| 仙桃市| 山丹县| 唐山市| 石河子市| 城市| 高雄市| 衡东县| 井冈山市| 大同县| 娄烦县| 自贡市| 恩施市| 馆陶县| 新宁县| 中阳县| 通山县| 沈阳市| 基隆市| 山西省| 信宜市| 高清| 新疆| 洛宁县| 迭部县| 长垣县| 邵武市| 沾化县|