⑴ 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;
}
⑵ 兔子繁殖,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語言:兔子繁殖問題
兔子的對數,就是Fibonacci數列
#include <stdio.h>
long f(long n)
{
if(n<3) return 1;
else return f(n-2)+f(n-1);
}
void main()
{
printf("一年後,有兔子%ld對.\n", f(12));
getch();
}
---------------------------------------------------------
1 1 2 3 5 8 13 21 34 55 89 ...
⑷ 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語言編程題目 兔子繁衍問題
方法一、用遞歸。
方法二、把兔子定義成結構,每個兔子自帶計時器變數,繁殖就是新建節點,構建結構鏈表。每次循環遍歷所有節點的計時變數大於3的就新建一個節點插入鏈表。最後統計節點數量。
我用方法1來寫:
#include <stdio.h>
int childbirth(int bMth,int gMth)//bMth:調用時傳0,gMth:經過的最大月數
{
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("請輸入經過多少月:"),scanf("%d",&n);
for(i=1;i<=n;i++)
printf("經過%d個月後:兔子數量為:%d ",i,childbirth(0,i));
return 0;
}
⑺ c語言題老師留的 兔子繁殖問題,用遞歸函數的方法做。 個位大神編一個然後寫下答案請寫上兔子多少只
//兔子的對數,就是Fibonacci數列
//1 1 2 3 5 8 13 21 34 55 89 ...
#include<stdio.h>
intf(intn)
{
if(n<3)
return1;
else
returnf(n-2)+f(n-1);
}
voidmain()
{
intn;
scanf("%d",&n);
printf("%d年後,有兔子%d只. ",n,f(n));
}