根據(jù)題意,得出以下結(jié)果:
成都服務(wù)器托管,成都創(chuàng)新互聯(lián)公司提供包括服務(wù)器租用、服務(wù)器托管、帶寬租用、云主機、機柜租用、主機租用托管、CDN網(wǎng)站加速、域名注冊等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18980820575
年份: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...
所以發(fā)現(xiàn)規(guī)律:除前兩個外,后面的則是等于前兩個的種即: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;i2*year;i++)
{
if(i%2==1)
{
a1=a1+a2;
total=a1;
}else{
a2=a1+a2;
total=a2;
}
}
printf("\n第%d年末總共會有%d對兔子",year,total);
}
#includestdio.h
int main()
{
int a[50];
int i,t,n;
a[0]=1;
a[1]=1;
for(i=2;i50;i++)
a[i]=a[i-1]+a[i-2];
scanf("%d",t);
while(t--)
{
scanf("%d",n);
printf("%d\n",a[n]);
}
return 0;
}
方法一、用遞歸。
方法二、把兔子定義成結(jié)構(gòu),每個兔子自帶計時器變量,繁殖就是新建節(jié)點,構(gòu)建結(jié)構(gòu)鏈表。每次循環(huán)遍歷所有節(jié)點的計時變量大于3的就新建一個節(jié)點插入鏈表。最后統(tǒng)計節(jié)點數(shù)量。
我用方法1來寫:
#include stdio.h
int childbirth(int bMth,int gMth)//bMth:調(diào)用時傳0,gMth:經(jīng)過的最大月數(shù)
{
int cnt=0,n=bMth,num=2;
while(n++gMth+1)
? if(cnt++2)
? ? ? num=num+childbirth(n,gMth+1);
return num;
}
int main()
{
int i,n;
printf("請輸入經(jīng)過多少月:"),scanf("%d",n);
for(i=1;i=n;i++)
? printf("經(jīng)過%d個月后:兔子數(shù)量為:%d\n",i,childbirth(0,i));
return 0;
}
思路不要亂。這個月的兔子只有兩個來源,一個來源是上個月的老兔子,另一個來源是這個月剛出生的兔子,而這個月剛出生的兔子,就是兩個月前的所有兔子,因為兩個月前的所有兔子,無論兩個月前就是老的,還是兩個月前剛生的,到了這個月就全部具有生育能力,每只都可以下一對兒,所以可以得到一個遞推關(guān)系f(n) = f(n - 1) + f(n - 2)。那么程序自然是
long?fun(int?month)
{
if(month?==?1?||?month?==?2)
return?1;
else
return?fun(month?-?1)?+?fun(month?-2);
}
//?ConsoleApplication1.cpp?:?定義控制臺應(yīng)用程序的入口點。
int?main()
{?
int?Mon;
long?Num;
scanf("%d",Mon);
Num?=?fun(Mon);
printf("第%d月共有兔子%ld只\n",Mon,Num);?
return?0;?
}
至于你的程序,很難把它改正確,因為這題壓根不是那個思路,那樣想會越想越亂的
標題名稱:兔子繁衍問題c語言函數(shù) c語言兔子繁衍問題輸出每個月的兔子
本文URL:http://jinyejixie.com/article28/dosdijp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、虛擬主機、面包屑導(dǎo)航、標簽優(yōu)化、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)