這個是特指三年后,也就是第四年(牛3歲)才可以生小牛:
還有可以感覺到的是:農夫把未滿月的牛抱回家試養了
package cn.yu.test;
/**
* 一個農夫養了一頭牛,三年后,這頭牛每年會生出1頭牛,生出來的牛三年后,又可以每年生出一頭牛……問農夫10年后有多少頭牛?n年呢?(用JAVA實現)
* Created by myeclipse8.5.
* User: @author yu
* Time: 2011-4-18
* Company: 天極傳媒集團
* Descripion:
*/
public class Cow {
public static int cowcount = 0;
public static void CowCount(int startYear, int endYear) {
cowcount++;
for (int i = 3 + startYear; i <= endYear; i++) {
CowCount(i, endYear);
}
}
public static void main(String[] args) {
int startYear=1;//開始年份,第一年開始
int endYear=10;//終止年份,第十年終止
CowCount(startYear, endYear);
System.out.println("總牛數:"+cowcount);
}
}
結果 總牛數:19
分析: 年份 牛名字 牛年齡 總數
1年 a 0歲 (剛生下來) 1頭
2年 a 1歲 1頭
3年 a 2歲 1頭
4年 a,b1
3歲,0歲 (增加一頭) 2頭
(這里理解吧?成年牛4歲才可以生小牛,小牛剛生下來是0歲而不是1歲)
5年 a,b1,b2
4歲,1歲 0歲 3頭
6年 a,b1,b2,b3
5歲,2歲 1歲 0歲 4頭
7年 a,b1,b2,b3,b4
6歲,3歲 2歲 1歲 0歲 0歲 6頭
8年 a,b1,b2,b3,b4,b5,c1
7歲,4歲 3歲 2歲 1歲 1歲 0歲 9頭
9年 a,b1,b2,b3,b4,b5,b6,c1,c2,d1
8歲,5歲 4歲 3歲 2歲 2歲 1歲…… 13頭
10年 a,b1,b2,b3,b4,b5,b6,b7,c1,c2,c3,d1,d2
9歲,6歲 5歲 4歲 3歲 3歲 2歲…… 19頭
如果是第三年生小牛呢(也就是說牛2歲就可以生小牛)
那就是網上大多數的答案
package cn.yu.test;
/**
* 一個農夫養了一頭牛,三年后,這頭牛每年會生出1頭牛,生出來的牛三年后,又可以每年生出一頭牛……問農夫10年后有多少頭牛?n年呢?(用JAVA實現)
* Created by myeclipse8.5.
* User: @author yu
* Time: 2011-4-18
* Company: 天極傳媒集團
* Descripion:
*/
public class Cow {
public static int cowcount = 0;
public static void CowCount(int startYear, int endYear) {
cowcount++;
for (int i = 2 + startYear; i <= endYear; i++) {
CowCount(i, endYear);
}
}
public static void main(String[] args) {
int startYear=1;//開始年份,第一年開始
int endYear=10;//終止年份,第十年終止
CowCount(startYear, endYear);
System.out.println("總牛數:"+cowcount);
}
}
結果 總牛數:55