兔小兔编程(母兔一般在什么时候生小兔)

2023-12-21 08:42:33 数码极客 bianji01

 

C语言编程:兔子繁殖问题

思路不要乱。这个月的兔子只有两个来源,一个来源是上个月的老兔子,另一个来源是这个月刚出生的兔子,而这个月刚出生的兔子,就是两个月前的所有兔子,因为两个月前的所有兔子,无论两个月前就是老的,还是两个月前刚生的,到了这个月就全部具有生育能力,每只都可以下一对儿,所以可以得到一个递推关系f(n)=f(n-1)+f(n-2)。那么程序自然是

longfun(intmonth)

if(month==1||month==2)

return1;

returnfun(month-1)+fun(month-2);

//ConsoleApplication1.cpp:定义控制台应用程序的入口点。

intmain()

intMon;

longNum;

scanf("%d",&Mon);

Num=fun(Mon);

printf("第%d月共有兔子%ld只\n",Mon,Num);

return0;

至于你的程序,很难把它改正确,因为这题压根不是那个思路,那样想会越想越乱的

你那个fun函数没看懂,我是C语言初学者,那个if和else就是fun的功能吗?就是那个if函数看不懂

对。fun的功能是靠if-else实现的,如果月份是1或者2,那么函数返回1,这表示第一个月和第二个月都有一只兔子,否则的话,就返回那个递推的计算,月份减1和减2后再次调用fun本身。

比如你现在计算month=3,也就是第三个月的情况。那么此时if不满足,走else分支,则会返回fun(2)+fun(1)的结果,而fun(2)满足if,返回1,fun(1)满足if,也返回1,那么fun(2)+fun(1)=2,最后算出第3个月有2对。如果month再大一些,就是一层一层的展开调用,最后不断返回,总会得到一个结果。

帕斯特语言编程:小兔子数(rabbit)

#include

usingnamespacestd;

intS(intx)//求各位的和的函数

intsum=0,y;

while(x>10)

y=x%10;

sum+=y;

x=x/10;

sum+=x;

returnsum;

intmain()

intL,R,num=0;

cout<<"输入一个区间【L,R】,L小于R:"<

cin>>L;

cin>>R;

for(intj=L;j

if(S(j)*S(j)==S(j*j))

cout<

num++;

cout<<"区间【"<

本回答由提问者推荐

java 兔子编程题 求助

参考 java.util.arrays 类中 staticvoid sort(t[] a, comparator c) 方法的实现

c语言关于兔子繁殖的问题

声明:易趣百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系315127732@qq.com
广告位招租
横幅广告