导航:首页 > 编程语言 > 编程兔子繁殖问题

编程兔子繁殖问题

发布时间:2023-01-05 18:25:53

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

#include <stdio.h>

int fun(int n)
{
if(n==1 || n==2)
return 1;
else
return fun(n-1) + fun(n-2);

}

int main(void)
{
int n,i=0;
printf("请输入年:");
scanf("%d",&n);
if(n>=1)
for(i=0;i<n;i++)
printf("Fibonacci数列的第%3d项是:%d\n",i+1,fun(i+1));
else
printf("输入错误!请重新输入......\n");

return 0;
}

2. 兔子繁殖,C语言

#include<stdio.h>
intmain(void)
{
intn,i,a,b,c;
a=0;
b=1;
i=1;
printf("请输入兔子对数n=");
scanf("%d",&n);
while(b<n){
c=a+b;/*while里面一次循环是1个月*/
a=b;
b=c;
i++;
}
printf("至少%d月",i);
return0;
}

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

如图,此题难度较大,要用到队列(我优化为循环队列)(此题有两个提问,都是我回答所以一样)

#include<stdio.h>
#defineLIFETIME13 //兔子寿命,单位半年(年龄小于此!)
#defineINITNUM1 //初始兔子有多少对
main()
{
inthY=0; //兔子历(就是时刻表):单位:半年
intnum[LIFETIME]={INITNUM,0}; //存储不同年龄兔子的对数(初始为0岁1对)
//babyI下标代表0岁,往前年龄增大,越过数组下界跳到上界,所以babyI+1反而是最老兔子
intbabyI=0; //0岁兔子对应下标,年龄单位为半年
intloveNum=0; //可生育兔子数量
inttotalNum=INITNUM; //总计兔子数量
intage1I=LIFETIME-2; //1岁兔子对应下标(开始能生育)
intage5_5I=LIFETIME-11; //1岁、5.5岁兔子对应下标(刚好能生育、刚好不能生育年龄)
intn=30; //输入n半年后!
while(hY<=n){
inti,j; //遍历临时变量。①展示兔子数量。
printf("第%.1f年 总计:%d对 可生育:%d对 ",(float)hY/2,totalNum,loveNum);
/*
for(i=0;i<LIFETIME;i++){
printf("%.1f岁 ",(float)i/2); //打印表头
//printf("%d,%.1f岁 ",i,(float)(++i)/2); //打印表头
}printf("单位:对 "); //换行*/
i=babyI; //显示各年龄对应数量
j=0;
do{
//printf("%d ",num[i]);
if(hY<21){ //仅用于加 显示
if((++j)%2==0)printf(" ");}
printf("%d",num[i]);
if(i>0)i--; //下标循环往左移动
elsei=LIFETIME-1;
}while(i!=babyI);
printf(" "); //换行

//②半年后
hY++; //时间过去半年
age1I=(age1I+1)%LIFETIME; //1岁数量(对)对应下标
age5_5I=(age5_5I+1)%LIFETIME;//5.5岁数量(对)对应下标
//printf("%d,%d ",age1I,age5_5I);
loveNum+=num[age1I]-num[age5_5I]; //可生育兔子数量(对)

babyI=(babyI+1)%LIFETIME; //新babyI设为原最老兔子的下标,
totalNum+=loveNum-num[babyI]; //每对大兔子可以生一对小兔子-死亡的老兔
num[babyI]=loveNum; //老兔的位置换成新兔
}
}

4. C语言 兔子的繁殖问题(注意,就是按题目样例要求输入然后输出,要一样)

#include<stdio.h>

int main()
{
int a[50];
int i,t,n;
a[0]=1;
a[1]=1;
for(i=2;i<50;i++)
a[i]=a[i-1]+a[i-2];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",a[n]);
}
return 0;
}

5. 兔子繁殖问题 C语言编程

根据题意,得出以下结果:
年份:0 0.5 1 1.5 2 2.5 3 3.5 4 ...
兔子:1 1 2 3 5 8 13 21 34...
序号: 0 1 2 3 4 5 6 7 8...
所以发现规律:除前两个外,后面的则是等于前两个的种即:A0=1,A2=1,An=A(n-1)+A(n-2)
这样程序就可以开始编制了
#include "stdio.h"
main()
{
int year,total,i,a1,a2;
printf("\n请输入多少年后:");
scanf("%d",&year);
a1=1;
a2=1;
for(i=2;i<2*year;i++)
{
if(i%2==1)
{
a1=a1+a2;
total=a1;
}else{
a2=a1+a2;
total=a2;
}
}
printf("\n第%d年末总共会有%d对兔子",year,total);
}

6. c语言数组 兔子繁殖

double a[100];
printf("第%d个月的兔子为:%0.2f\n", n, a[n-1]);
改一下

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

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

longfun(intmonth)
{
if(month==1||month==2)
return1;
else
returnfun(month-1)+fun(month-2);
}
//ConsoleApplication1.cpp:定义控制台应用程序的入口点。
intmain()
{
intMon;
longNum;
scanf("%d",&Mon);
Num=fun(Mon);
printf("第%d月共有兔子%ld只 ",Mon,Num);
return0;
}

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

8. 求c编程 兔子繁殖问题

#include<stdio.h>

intmain()
{
intmonth[20]={0};//记录每个月的新生兔
inti,j,sum=0;
month[0]=2;//初始2只兔
//我的理解一出生就是第一个月,那么第三个月后开始繁殖
//如果一出生算第零个月,就从i=3开始计算,后面j<=i-3
for(i=2;i<20;i++){
inttemp=0;
//当月的新生兔是两个月之前的所有月份出生的兔子之和
for(j=0;j<=i-2;j++)
temp+=month[j];
month[i]=temp;
}
//所有月份的新生兔之和就是结果
for(i=0;i<20;i++){
sum+=month[i];
}
printf("sum:%d ",sum);
return0;
}

9. c编程问题 兔子繁殖(递推)

6年时间是一个循环 0.5年生一对,每6年减一队以下是第一队兔子和它们直系儿子的图示,每一对直系兔子又包含这样的一个图示,时间关系只画一组,如果有错请指出
1年 1.5年 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 11

1 2 3 4 5 6 7 8 9 10 9
1 2 3 4 5 6 7 8 9 10 9
1 2 3 4 5 6 7 8 9 10 9
1 2 3 4 5 6 7 8 9 10 9
1 2 3 4 5 6 7 8 9 10 9
1 2 3 4 5 6 7 8 9 10 9
1 2 3 4 5 6 7 8 9 10 9

空格打不出来
第二行从5开始与上一行对齐,表示第一代兔子的第一对儿子
第三行从6开始,第四行从7开始依次后推,,
把每一列加起来是总数,但是这只是表示第一代兔子生的小兔子,和第一代兔子生的小兔子所生的小兔子,从第二行开始,下面又有一个这样的循环,空格打不出来,画了等于白画
1年--1.5--2--2.5--3--3.5--4--4.5--5--5.5--6--6.5--7--7.5--8--8.5--9--9.5--10--11

1----2----3--4----5--6----7--8----9--10---9--
------------------1--2----3--4----5---6---7---8---9--10---9
---------------------1----2--3----4---5---6---7---8---9--10---9
--------------------------1--2----3---4---5---6---7---8---9--10---9
-----------------------------1----2---3---4---5---6---7---8---9--10---9
----------------------------------1---2---3---4---5---6---7---8---9--10---9
--------------------------------------1---2---3---4---5---6---7---8---9--10---9
用---代替空格,图示就是这样

10. C语言编程:兔子繁殖问题 这是一个有趣的古典数学问题,着名意大利数

#include <stdio.h>

int main()

{int i,f[12]={1,1};

for(i=2;i<12;i++)

f[i]=f[i-1]+f[i-2];

printf("%d ",f[11]);

return 0;

}

阅读全文

与编程兔子繁殖问题相关的资料

热点内容
dvd光盘存储汉子算法 浏览:755
苹果邮件无法连接服务器地址 浏览:960
phpffmpeg转码 浏览:669
长沙好玩的解压项目 浏览:141
专属学情分析报告是什么app 浏览:562
php工程部署 浏览:831
android全屏透明 浏览:730
阿里云服务器已开通怎么办 浏览:801
光遇为什么登录时服务器已满 浏览:300
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:141
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:890
app转账是什么 浏览:163