㈠ 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語言母牛問題
int Muniu(int n)
{
int t,i,s,qq; //qq為其n次等比的和,s為n年後牛的數量
qq=1
t=n/4; //t為n的數值
for(i=1;i<=t;i++)
{
qq=qq+2*i;
}
s=qq-1;
return(s);
}
一個等比數列 看一下 也好長時間沒有用c了 不知道是不是有語法錯誤
㈢ c語言程序設計 若一頭小母牛從第4個年頭開始每年生育一頭母牛,按照此規律,第n年時有幾頭母牛
//VS2005 調試通過!
#include<iostream>
using namespace std;
int main()
{
int i;
int n;//年數
int num;//牛的數目
//type[0]表示剛出生的牛,type[1]表示出生後第二年的牛,type[2]表示出生後第三年的牛,type[3]表示已經開始生產的牛
int type[4]={1,0,0,0};
cout << "輸入年數:";
cin >> n;
for (i=1;i<n;i++)
{
type[3] += type[2];
type[2] = type[1];
type[1] = type[0];
type[0] = type[3];
}
num = type[0] + type[1] + type[2] + type[3];
cout << "牛的總數為:" << num << endl;
return 0;
}
㈣ 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語言編程關於母牛生牛的問題
int Muniu(int n)
{
int t,i,s,qq; //qq為其n次等比的和,s為n年後牛的數量
qq=1
t=n/4; //t為n的數值
for(i=1;i<=t;i++)
{
qq=qq+2*i;
}
s=qq-1;
return(s);
}
㈥ C語言編程 母牛繁殖問題
20
Cow 20 = 2745
Press any key to continue
你是用什麼編譯器的?
#include"stdio.h" 表示先從類庫找
#include<stdio.h> 表示先從當前文件夾找
#include "stdio.h"
int Cow( int n )
{ int i, cow1,cow2,cow3,cow;
cow1=2; cow2=3; cow3=4;
if(n==1) cow=2;
else if(n==2) cow=3;
else if(n==3) cow=4;
else if(n<1) cow=0;
for( i=4; i<=n; i++)
{ cow=cow3+cow1;
cow1=cow2; cow2=cow3; cow3=cow;
}
return cow;
}
void main()
{ int n;
scanf("%d", &n);
printf("Cow %d = %d\n", n, Cow(n) );
}
㈦ 求助:用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語言編程:母牛的問題
#include<stdio.h>
#define Max 20//0記做第一年(2頭牛),20記做第二十年
void main()
{
int sum=1,i,year,a[100]={0};//sum記錄總數,a[]儲存每頭牛的存活年數
for(year=0;year<=Max;year=year+4)//年數按4年遞增
{
//此循環目的是查看每頭牛的年齡,並作出判斷操作
for(i=sum-1;i>=0;i--)//因為數組從0開始所以sum要減一
{
a[i]+=4;//每頭牛成長4歲
if(a[i]>15&&a[i]<20)//表示在這一年死過的牛
sum-=1;//總數減一
}
sum=2*sum;//再生一批牛
}
printf("%d\n",sum);
}
第16年才是26頭,第20年應為48頭,而不是50頭,前面程序有算得50頭的,應該不正確,請再檢查演算法
思路呢就是:
比如說第一年有兩頭牛,先讓他們的年齡+4,然後查看是否死掉,死掉的從總數中減去再乘以2,依次類推
㈨ C語言設有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規律,第N年時有幾頭母牛 求解釋
n-1說的是去年一共有多少頭,然後n-3說的是3年前有多少頭(也就是說性成熟可生育的母牛數量),那麼去年的牛數加上可生育的牛數量(也就是今年新產的小牛數量)就是今年牛數量
舉個例子,第5年就是第四年的牛數量加上第2年的牛數量(第二年的牛已經全部可以生育了)