8-2c语言编程题假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖
假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,一年以后可有多少对兔子(即当年12月份总计有多少对兔子,含成兔和小兔)?请编程求解该问题。
参考答案:依题意,兔子的繁殖情况如图所示。图中实线表示成兔仍是成兔或者小兔长成成兔;虚线表示成兔生小兔。观察分析此图可发现如下规律:
(1)每月小兔对数 = 上个月成兔对数。
(2)每月成兔对数 = 上个月成兔对数 + 上个月小兔对数。
综合(1)和(2)有:每月成兔对数 = 前两个月成兔对数之和。
输出格式:
每个月兔子对数的输出格式: "%4d"
第12个月的兔子总数的输出格式: "\nTotal=%d\n"
这题其实就是个斐波那契数列。小兔就是前个月的成兔数,然后上个月的成兔和小兔相加就是数列的前两个相加等于自己。 所以代码如下 我比上面的答案时间快多了,他那种成指数级增长的递归调用你试试m=40,他会慢死的
#include <stdio.h>
int main(void)
{
int i,tu1,tu2,tu3,m=12;
tu1=1;
tu2=1;
printf("%4d%4d",tu1,tu2);
for(i=3;i<=m;i++)
{
tu3=tu1+tu2;
printf("%4d",tu3);
tu1=tu2;
tu2=tu3;
}
printf("\nTotal=%d\n",tu3);
}
有24只兔,按照每两只黑兔之间有两只白兔的规律排成一排,第18只兔子是()兔.一共有(有24只兔, 2020-05-13 …
白兔比黑兔少四分之三,黑兔比白兔多12只,黑兔有多少只?白兔和黑兔共有多少只?2,白兔有12只,黑 2020-07-13 …
一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也 2020-07-23 …
y=x*2x=y中俩个公式的x,y是指的一个变量吗?例1:一个饲养场引进一只刚出生的新品种兔子,这 2020-07-23 …
王爷爷家养黑兔60只.养的白兔比黑兔多14.养的灰兔比黑兔少13.白兔比黑兔多多少只?白兔有多少只? 2020-11-14 …
迭代法u2=u1+u1×1=2u1x1是什么意思例1:一个饲养场引进一只刚出生的新品种兔子,这种兔子 2020-11-21 …
B处的兔子和A处的狗相距56米,兔子从B处逃跑,狗同时从A处跳出追兔子,狗一跳前进2米,狗跳3次时间 2020-11-22 …
B处的兔子和A处的狗相距56米,兔子从B处逃跑,狗同时从A处跳出追兔子,狗一跳前进2米,狗跳3次时间 2020-11-22 …
一只笼里有白兔、黑兔若干只.如果拿出2只黑兔,白兔和黑兔的只数相等;如果拿出1只白兔,黑兔只数是白. 2021-01-12 …
白兔比黑兔多16只,白兔是黑兔的5倍,白兔比黑兔多16只,白兔的只数是黑兔的5倍,白兔和黑兔各有多少 2021-01-12 …