兔子生崽c语言
‘壹’ 兔子繁殖,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;
}
‘贰’ 兔子繁殖问题 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);
}
‘叁’ c语言数组 兔子繁殖
double a[100];
printf("第%d个月的兔子为:%0.2f\n", n, a[n-1]);
改一下
‘肆’ C语言程序设计 兔子产崽问题
#include <stdio.h>
main()
{
int i,tu1,tu2,tu3,m;
tu1=1;
tu2=1;
pringf("请输入月份数(要求不大于24)");
scanf("%d",&m);
if(m==1||m==2)
{
printf("有一对兔子");
}
else if(m<2&&m<=24)
{
for(i=3;i<=m;i++)
{
tu3=tu1+tu2;
tu1=tu2;
tu2=tu3;
}
printf("%d月的兔子数为#d\n",m,tu3);
}
else
{
printf("月份书输入不符合要求,程序结束\n");
}
}
‘伍’ 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; //老兔的位置换成新兔
}
}
‘陆’ 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;
}
‘柒’ C语言兔子繁殖问题
第一。。。定义为50是因为会用到45.一般都会定义大一点。
第二。。。怎么可能会不可以运行。你就算2个都改成45也是可以用的。
你截图上来。怎么可能不可以。我刚用编译器试过。可以
‘捌’ C语言(兔子生兔子的问题)
啥白痴什么的就不必了- -人都是一点一点学会的嘛~
1
有一对兔子,三个月生一对兔子,那么,1月:2个(1对);2月:2个(1对);3月:4个(2对);
兔宝宝不死,三个月生一对兔子,那么,4月:4个(这里应该是6个(即3对),因为第4月时最开始的一对兔子还会继续生。。);5月:4个(这里应该是10个(即5对),因为最开始的一对兔子与第3月出生的一对兔子,他们在第5月生了2对,在加上原来的,即5对。。)
以后同理。。。。。。。。。。。。。。。。(呃。。其实你就理解成斐波那契数列就行了。。)
2
if(i%2==0) printf("\n");/*控制输出,每行四个*/
它其实就是一个显示格式的问题。。i代表当前的月份数,一次PRINTF()输出当前月份的兔子数。所以就是输出4个数就换行。。。
‘玖’ C语言兔子繁殖
#include<stdio.h>
void main()
{
int a,n,i;
scanf("%d",&i);
while(i--)
{
scanf("%d",&a);
if(a==1)
printf("1\n");
else if(a==2)
printf("2\n");
else if(a>2)
{
int b[100];
b[1]=1;
b[2]=2;
for(n=3;n<=100;n++)
{
b[n]=b[n-1]+b[n-2];
}
printf("%d\n",b[a]);
}
}
}
定义一般大一点。很正常。
‘拾’ C语言兔子生崽的问题。求大神阿。在线等。
#include <stdio.h>
main()
{
int i,tu1,tu2,tu3,m;
tu1=1;
tu2=1;
printf("请输入月份数");
scanf("%d",&m);
if(m==1||m==2)
{
printf("有一对兔子");
}
else if(m>2)
{
for(i=3;i<=m;i++)
{
tu3=tu1+tu2;
tu1=tu2;
tu2=tu3;
}
printf("%d月的兔子数为#d\n",m,tu3);
}
}