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