当前位置:首页 » 编程语言 » C语言免子的窝
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言免子的窝

发布时间: 2023-06-14 02:46:37

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语言兔子

那个i用来实现循环累加

这个其实就是Fibonacci数列的应用。
f(1)=f(2)=1 (i=1或者i=2)
f(i)=f(i-1)+f(i-2) (i>2)

附 几种求Fibonacci数列前20位的方法

#include<stdio.h>
int function(int n);
int main()
{
int i;
for(i=1;i<=20;i++)
printf("%d ",function(i));
printf("\n");
return 0;
}
int function(int n)
{
if(n==1||n==2)return 1;
else return function(n-1)+function(n-2);
}

********************************************************************************

#include<stdio.h>
int main()
{
int i,a[20];
for(i=0;i<20;i++)
{
if(i==0||i==1)a[i]=1;
else a[i]=a[i-1]+a[i-2];
printf("%d ",a[i]);
}
printf("\n");
return 0;
}

********************************************************************************

#include <stdio.h>
int main()
{
int n;
int fn;
for(n=1;n<21;n++)
{
switch(n)
{
case 1:{fn=1;break;}
case 2:{fn=1;break;}
default:
{
int a=1,b=1,i,j;
for(i=3;i<=n;i++)
{
j=a+b;
a=b;
b=j;
}
fn=j;
}
}
printf("%d ",fn);
}
return 0;
}

㈢ 一道C语言的编程题,兔子洞的问题。

# include <stdio.h>


int main()

{

//Hole表示20个三洞 ,Hole【21】是为了数组下标从1开始,方便对题目的理解

//初始化为0,表示还没有被 灰狼搜索

int Hole[21] = {0};

int i = 1,j;

//进行15次循环,表示灰狼搜索了15次

for(j = 1; j <= 15; j++)

{

Hole[i] = 1; //将洞i设为1,表示编号为i的洞已经搜索了

//设置下一个要搜索的山洞编号,因为隔两个,所以加3

//比如,一开始是1,然后是i1+3=4,隔着2和3号洞

//最后对20取余,是为了不超出20的范围,比如搜索完19号洞后,加上3是22,22%20=2,下一个就搜索2号洞

i = (i + 3) % 20;

if(i == 0)

Hole[20] = 1; //如果i为20,下次设置被访问的将是Hole【0】 = 1,所以将Hole【20】单独考虑

}

//15次循环完后,1-20剩余Hole【】数组中为0的,是为被搜索的山洞

for(i = 1; i <= 20; i++)

{

if(Hole[i] == 0) //如果为被搜索,输出该山洞号,即兔子所在的洞

printf("%d ",i);

}

return 0;

}

㈣ 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>
#include<conio.h>
#include<stdlib.h>
#defineM13
intmain()
{
inti;
longa[M]={1,1};
for(i=2;i<M;i++)
{
a[i]=a[i-1]+a[i-2];

}
for(i=0;i<M;i++)
{
printf("%d月兔子总数:%d ",i,a[i]);

}
getch();
return0;}