C语言 递归调用 求高手帮忙啊 救命啊!!!!!!!

2025-01-20 02:51:42
推荐回答(5个)
回答1:

当n<4时,只有一头牛,一直没有新牛,所以cownum()为1;
当n>=4时,第n年牛的数量cownum(n)为前一年的牛的数量cownum(n-1)加上新生下来的牛的数量。
因为每头牛每年生育一头小牛,所以新出生的小牛的数量等于之前可以生育的牛的数量。而可以生育的牛的数量为年龄大于等于3周岁的牛的数量,即第n-3年时的牛的数量,即cowmun(n-3)。(注:n-2,n-1年新出生的牛没有生育能力)。

回答2:

每年母牛的数量是如下的数列:
1,1,1,2,3,4,6,9,13,19,28,41......
可知,从第四年起,每年牛数是n-1年牛数与n-3年牛数之和.
这是从数列查看规律可以得出的结论.

细想的话,第n年的母牛数等于昨年的母牛数加上增长的母牛数.昨年的母牛数是cownum(n-1).增长的母牛数是多少呢?因为母牛从第四年开始就产小牛,那么3年前的所有母牛如今都要生一头小牛,那么增长牛数为cownum(n-3).

此递归类似斐波拉契数列,是非常消耗资源的.当计算40年的牛数时,大约需要1T的内存.

回答3:

int di(int n)
{
int i=1;
if(n==1)
return n;
else
return n*di(n-1) ;
}

int main()
{
int n;
scanf("%d",&n);
printf("%d\n",di(n));
}

回答4:

这种东西用语言说的话很麻烦,你自己带进几个数去试试,看看规律就知道了,()+()。。。。每一个()就代表一只小母牛,当然,()还是会在分解成()+()的

回答5:

去年这个时候饿母牛数是cownum(n-1),那么到今年正好增加了cownum(n-3)头牛,加起来就是今年的母牛数cownum(n)