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