導航:首頁 > 編程語言 > 編程兔子繁殖問題

編程兔子繁殖問題

發布時間: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光碟存儲漢子演算法 瀏覽:753
蘋果郵件無法連接伺服器地址 瀏覽:956
phpffmpeg轉碼 瀏覽:667
長沙好玩的解壓項目 瀏覽:140
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:482
h3c光纖全工半全工設置命令 瀏覽:139
公司法pdf下載 瀏覽:379
linuxmarkdown 瀏覽:349
華為手機怎麼多選文件夾 瀏覽:681
如何取消命令方塊指令 瀏覽:347
風翼app為什麼進不去了 瀏覽:776
im4java壓縮圖片 瀏覽:360
數據查詢網站源碼 瀏覽:148
伊克塞爾文檔怎麼進行加密 瀏覽:888
app轉賬是什麼 瀏覽:161