/*
一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛……问农夫10年后有多少头牛?n年呢?
*/
#include <stdio.h>
/*使用递归*/
int computeCows(int year)
{
int cows = 0;
/*新生牛本身*/
cows++;
if(year < 3)
{
/*如果新生牛生命小于3,则不会再生小牛,直接返回*/
return cows;
}
year -= 3;
/*从此每年都会生一头小牛,而每头小牛又会重复她母亲的牛身*/
for(;year >= 0;year--)
{
cows += computeCows(year);
}
return cows;
}
int main()
{
int year = 10;
printf("/nThere will be %d cows total in %d years!/n", computeCows(year), year);
return 1;
}

通过递归算法模拟了一个农夫养牛的情景,初始有一头牛,三年后每年能生一头牛,新出生的牛三年后也能继续生育。该程序计算了十年后农夫将拥有多少头牛,并提供了通用的计算方法。
2148

被折叠的 条评论
为什么被折叠?



