用java数牛!

来源:百度知道 编辑:UC知道 时间:2024/07/08 19:21:25
一头小母牛在3岁时开始生小牛(只生小母牛),往后每年生一只。每只小母牛又在3岁时开始生小牛。请问第20年的时候一共是多少头牛。

请问楼主,哪一年算做第一年呢?
还有,这里的“岁”是周岁还是虚岁
我记得我曾经在这里回答过类似的问题
大概算法描 述如下(用的是递归,"岁"为虚岁)
第n年的总牛数=第n-1年的总牛数+第n年的新生牛数
=第n-1年的总牛数+第n年3岁以上的牛数
=第n-1年的总牛数+第n-2年1岁以上的牛数
=第n-1年的总牛数+第n-2年的总牛数

具体的可以参看我以前回答过的这个问题。
http://zhidao.baidu.com/question/83450735.html

public class Cow {

//第三年年末才生小牛,第四年年初有2只,第20年有872只.
private static final int CAN_BORN_NEEDS = 2;

public int getNext(int n) {
int result = 0;
if (n <= 0) {
result = 0;
} else if (n < Cow.CAN_BORN_NEEDS) {
result = 1;
} else {
for (int i = 1; i <= n - Cow.CAN_BORN_NEEDS - 1; ++i) {
result += getNext(i);
}
result++;
}
return result;
}

public static void main(String [] args) {
Cow c = new Cow();
for(int i = 1; i <= 20; i ++){