
C语言 递归调用 求高手帮忙啊 救命啊!!!!!!!
编程求解问题。若以头小母牛,从出生起第四年开始每年生一头母牛,按此规律,第n年时有多少头母牛。(用递归函数方法求)#include<stdio.h>intcownum(i...
编程求解问题。若以头小母牛,从出生起第四年开始每年生一头母牛,按此规律,第n年时有多少头母牛。(用递归函数方法求)
#include <stdio.h>
int cownum(int n);
void main()
{
int num,n;
printf("Please input the year:");
scanf("%d",&n);
num=cownum(n);
printf("the numbers of cow is %d\n",num);
}
int cownum(int n)
{
if(n<4)
return 1;
else
return cownum(n-1)+cownum(n-3);
return cownum(n-1)+cownum(n-3); 这条语句让我百思不得其解 求高手详细讲解。。 展开
#include <stdio.h>
int cownum(int n);
void main()
{
int num,n;
printf("Please input the year:");
scanf("%d",&n);
num=cownum(n);
printf("the numbers of cow is %d\n",num);
}
int cownum(int n)
{
if(n<4)
return 1;
else
return cownum(n-1)+cownum(n-3);
return cownum(n-1)+cownum(n-3); 这条语句让我百思不得其解 求高手详细讲解。。 展开
5个回答
展开全部
当n<4时,只有一头牛,一直没有新牛,所以cownum()为1;
当n>=4时,第n年牛的数量cownum(n)为前一年的牛的数量cownum(n-1)加上新生下来的牛的数量。
因为每头牛每年生育一头小牛,所以新出生的小牛的数量等于之前可以生育的牛的数量。而可以生育的牛的数量为年龄大于等于3周岁的牛的数量,即第n-3年时的牛的数量,即cowmun(n-3)。(注:n-2,n-1年新出生的牛没有生育能力)。
当n>=4时,第n年牛的数量cownum(n)为前一年的牛的数量cownum(n-1)加上新生下来的牛的数量。
因为每头牛每年生育一头小牛,所以新出生的小牛的数量等于之前可以生育的牛的数量。而可以生育的牛的数量为年龄大于等于3周岁的牛的数量,即第n-3年时的牛的数量,即cowmun(n-3)。(注:n-2,n-1年新出生的牛没有生育能力)。
展开全部
每年母牛的数量是如下的数列:
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的内存.
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的内存.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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));
}
{
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));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种东西用语言说的话很麻烦,你自己带进几个数去试试,看看规律就知道了,()+()。。。。每一个()就代表一只小母牛,当然,()还是会在分解成()+()的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去年这个时候饿母牛数是cownum(n-1),那么到今年正好增加了cownum(n-3)头牛,加起来就是今年的母牛数cownum(n)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询