这个是特指三年后,也就是第四年(牛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