问题描述:
---------------------------------------------------------------------------------------
一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛。
问农夫10年后有多少头牛?n年呢?
Csdn上一个比较火的问题
自己尝试实现了一下:
核心代码如下:
---------------------------------------------------------------------------------------
int cow(int begin,int N,int *sum)
{
int t,year = begin;
++*sum ;
for(t = 0; t < step ; t++) /*step为3,前3年每头牛什么也不做*/
year++;
while(year <= N)/*如果3年后,还未到期限,则每年生一牛*/
cow(year++,N,sum);
return 0;
}
---------------------------------------------------------------------------------------
不过好像跟csdn上群众们的答案不太一样,可是我觉得我的又是对的。这是一个Fibnacci问题,一种答案是
1,1,2,3,5,8......,这个好像是第3年生小牛的问题。我的实现才是3年后生小牛的问题
还得仔细思考下。随后自己也些个第3年生小牛的算法看看。