Ⅰ c語言母牛生小牛(時間超了)
用遞歸效率低是正常的,畢竟頻繁的函數調用是要佔據大量的時間空間。
如果該題不是一定要用遞歸演算法的話,我給你個新的演算法(肯定不會超時),但是代碼我就不寫了,因為很簡單。
初始化 int cow_age[4] = {1, 0, 0, 0};分別代表出生1年、出生2年、出生3年、出生4年以後的母牛數目,最初有個出生1年的母牛(題目給出)。
然後設置循環變數i,i每自加一次就代表過一年,循環內容是
cow_age[3]+ = cow_age[2] //3歲的母牛長到了4歲
cow_age[2] = cow_age[1] //2歲的母牛長到了3歲
cow_age[1] = cow_age[0] //1歲的母牛長到了2歲
cow_age[0] = cow_age[3] //每個4歲以上的母牛生了一隻1歲的小牛
總數就是 cow_age[0]+cow_age[1]+cow_age[2]+cow_age[3]。
理解應該沒問題吧
Ⅱ c語言編程:遞增的牛群:若一頭小母牛,從第四個年頭開始每年生一頭母牛。按此規律,第n年時有多少頭母
1/************************************************************************
遞增的牛群的問題。若1頭小母牛,從第4年開始每年生一頭母牛,按此規律,第20年
時,有多少頭母牛?
************************************************************************/
2
3#include<stdio.h>
4
5intmain()
6{
7inti,f1=1,f2=1,f3=1,f4;
8
9for(i=4;i<=20;i++)
10{
11f4=f1+f3;
12f1=f2;
13f2=f3;
14f3=f4;
15}
16printf("第20年都一共有%d頭母牛 ",f4);
17}
Ⅲ C語言設有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規律,第N年時有幾頭母牛 求解釋
n-1說的是去年一共有多少頭,然後n-3說的是3年前有多少頭(也就是說性成熟可生育的母牛數量),那麼去年的牛數加上可生育的牛數量(也就是今年新產的小牛數量)就是今年牛數量
舉個例子,第5年就是第四年的牛數量加上第2年的牛數量(第二年的牛已經全部可以生育了)
Ⅳ C語言編程問題 母牛繁殖
我用遞歸的方法寫了個,非遞歸的方法暫時沒想出來:
#include<stdio.h>
voidCow(int*femaleCow,intn)
{
for(inti=1;i<=n;++i)
{
*femaleCow+=1;
if(i+4<=n)
Cow(femaleCow,n-(i+4)+1);
}
}
intmain()
{
for(inti=1;i<=20;++i)
{
intfemaleCow=1;
Cow(&femaleCow,i);
printf("第%2d年:%3d頭母牛\n",i,femaleCow);
}
}
也不能肯定對你的問題有沒有理解對,以下是測試結果,你要的答案的第20年的:
第1年:2頭母牛//第一頭母牛加她生的小牛
第2年:3頭母牛//依次類推
第3年:4頭母牛
第4年:5頭母牛
第5年:7頭母牛//第一年生的小牛開始生了
第6年:10頭母牛//第二年生的小牛也開始了
第7年:14頭母牛
第8年:19頭母牛
第9年:26頭母牛
第10年:36頭母牛
第11年:50頭母牛
第12年:69頭母牛
第13年:95頭母牛
第14年:131頭母牛
第15年:181頭母牛
第16年:250頭母牛
第17年:345頭母牛
第18年:476頭母牛
第19年:657頭母牛
第20年:907頭母牛
不知道你要的是不是這樣的結果?
Ⅳ c語言編寫程序:年頭有一頭牛,年初要生頭小牛;每頭小牛從第四年也要生頭小牛。第20年頭上共有多少頭牛
斐波拉契數列。搜下這幾個字就能找到程序了。
純粹好奇,跟本題沒關系:一頭牛怎麼生小牛?怎麼保證每頭小牛都是母的?
Ⅵ C語言編程,課題:遞增的牛群
遞歸式為典型的fabnaccio 數列 : f(1)=1; f(2)=1;f(3)=1; f(n)=f(n-1)+f(n-3) (n>=4) (推導不解釋,自己慢慢理解)。#include<stdio.h>long f[23]={0,1,1,1}; //f[]記錄每年的母牛數void fu(){
for(int i=4;i<=20;i++) f[i]=f[i-1]+f[i-3];}int main(){ fu(); printf("%ld\n",f[20]); return 0;}
Ⅶ c語言編程:遞增的牛群:若一頭小母牛,從第四個年頭開始每年生一頭母牛。按此規律,第n年時有多少頭母牛
1、從桌面打開下載好的編程軟體,下圖為visual C++的打開界面。
Ⅷ 求助:用c語言來求牛的繁殖的問題
此題關鍵要畫個圖分析就容易解決,好那個經典兔子問題的裴波那切數列很像
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta,b,c,d;
a=1,b=1;
c=1;
for(inti=4;i<=20;i++)
{
d=a+c;
a=b;
b=c;
c=d;
}
printf("第20年有牛%d頭 ",d);
}
要好好學習c語言,祝早日成功!
Ⅸ c++母牛的故事 裴波那契數列
這個函數,是在n>4的時候被回調的。也就是說在范圍內,這個函數會被執行到n=4的時候,而且如果在n>5的時候,會執行如cow(5)的函數,這個返回的值就會進行累加其內部最終的返回值n
打個比方,如果n=7的時候,會按照如下進行
cow(6)+ cow(4)- >
cow( 5 ) + cow( 3 ) + 4 - >
cow( 4 ) + cow( 2 ) + 3 + 4 ->
( 4 + 2 ) + 3 + 4 =13
不知道是否解答對了。但是應該是這樣子解釋的。
很高興收到樓主的問題求助,
如果解決了樓主的問題,希望樓主採納,歡迎再次收到樓主的疑問
Ⅹ C語言 遞歸調用 求高手幫忙啊 救命啊!!!!!!!
當n<4時,只有一頭牛,一直沒有新牛,所以cownum()為1;
當n>=4時,第n年牛的數量cownum(n)為前一年的牛的數量cownum(n-1)加上新生下來的牛的數量。
因為每頭牛每年生育一頭小牛,所以新出生的小牛的數量等於之前可以生育的牛的數量。而可以生育的牛的數量為年齡大於等於3周歲的牛的數量,即第n-3年時的牛的數量,即cowmun(n-3)。(註:n-2,n-1年新出生的牛沒有生育能力)。