當前位置:首頁 » 編程語言 » c語言做兔子問題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言做兔子問題

發布時間: 2022-09-01 13:10:21

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語言兔子繁殖問題

你好 可以創建一個數組a。
a[0]和a[1]都為1。
之後每一項都遵循a[n]=a[n-1]+a[n-2]。用for循環寫。
由此依次列出每一項。每一項使用\t隔開。
需要一個count變數。每輸出一個值count++
如果count求餘5為0,輸出一個\n。
最後就可以做到如圖的輸出,請給好評~

③ c語言程序:兔子問題

#include <stdio.h>
main()
{
int i,tu1,tu2,tu3,m;
tu1=1;
tu2=1;
pringf("請輸入月份數(要求不大於24)");
scanf("%d",&m);
if(m==1||m==2)
{
printf("有一對兔子");
}
else if(m<2&&m<=24)
{
for(i=3;i<=m;i++)
{
tu3=tu1+tu2;
tu1=tu2;
tu2=tu3;
}
printf("%d月的兔子數為#d\n",m,tu3);
}
else
{
printf("月份書輸入不符合要求,程序結束\n");
}
}
我們老師都講這題了~

④ 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));
}

⑤ 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;}

⑥ c語言編程,求兔子問題。

因為只有6年,定義一個數組存儲第n年各歲兔子的數量

#include<stdio.h>

int sum(int n)
{
int i,j,a[6];
a[0]=1; //初始化,第一年只有1對,都是1歲
for(i=1; i < 6; i++)
a[i] = 0; //初始化,第一年只有1對,其餘為0

for(i=1; i < n; i++)
{//第n年x歲的兔子數是第n-1年x-1歲兔子的數量
// a[x] a[x-1]
for(j=5;j>0;j--)
a[j] = a[j-1];//7歲的就會死掉,直接丟棄
//到3歲就可以生一對,所以從3(數組從0開始,故這里是2)加到6
a[0] = a[2] + a[3] + a[4] + a[5];
}

return (a[0] + a[1] + a[2] + a[3] + a[4] + a[5]);
}

void main()
{
int i=1;
for(i=1; i < 25; i++)
{
printf("%-3d", i);
printf(":%5d\n", sum(i));
}
}

⑦ c語言編程:求兔子問題。

不知道我理解錯沒 兔子夫妻 在第六年 先生下一對 然後雙雙死亡

#include<stdio.h>

int fun(int n)
{
int sum;
for(int i=0;i<=n;i++)
{
if(i==7)sum=sum-1;
//到了第七年 開始的一對死掉了 不能再生了
if(i>=9)sum=sum-(fun(i-6)-fun(i-7));
//到了第九年 又開始死了
if(i<3)sum=1;
//前二年只有一對
if(i>=3)sum*=2;
//二年後每年兔子都會翻倍

}
return sum;
}
void main()
{
int n;
for(;;){
printf("請輸入年數:");
scanf("%d",&n);
printf("有兔子:%d對\n",fun(n));
}
}

⑧ 用C語言編寫雞兔同籠問題

#include
<stdio.h>
void
main(
)
{
int
ret
=
0;
//
表示最後一個printf的返回值
while(1)
{
int
h,f,c,r;
printf("請輸入頭的數目:");
scanf("%d",&h);
printf("\n請輸入腳的數目(必須為偶數):");
scanf("%d",&f);
while(f%2!=0
&&
f
!=
0
&&
h
!=
0)
//這里的不等於的條件可以不加
{
printf("\n輸入腳的數目為奇數,請重新輸入腳的數目(必須偶數):");
scanf("%d",&f);
if(
f
>
4h
||
f
<
2h)
continue;
}
for(c=0;c<=h;c++)
for(r=1;r<=h;r++)
//這句改成:for(r=0;
r
<=
h-c;
r++)好點,減少的循環的次數,加了效率
{
if(c+r==h&&2*c+4*r==f)
ret
=
printf("\n雞的數目為%d,兔子的數目為%d\n\n",c,r);
}
if(
ret
==
39)
/*作用是輸入一次成功後,結束大循環,
可以不要*/
break;
}
}

⑨ 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;
}