當前位置:首頁 » 編程語言 » 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;}