1. 求c語言大神:現有一頭牛,第四年開始每年生一頭牛,小牛也是按這個規律再生下一代小牛……輸入年數,輸
這個簡單:我的建議是如果你真的希望自己能學會這種題目的話,第一步肯定是要先推導出前幾年的牛的數量觀察數據,然後根據數據進行思考:每個小牛到第四年的時候就可以像我剛開那的那個牛一樣生育了。所以,你的第一個牛,就是一個榜樣,每個過了四年的牛都會成為這樣的一隻牛的,如果覺得我回答的抽象了建議你搜索HDU2018有題解的可以參考下。代碼的話我也不發了,簡單的遞推題目。
2. C語言的一個基本程序,尋求幫助!
我估計每四年生一個小牛的意思是到第五年有產小牛,這樣程序就對了
int i; *其實這句話可以沒有
int T(i) *在主函數外聲明一個函數T(i),返回值是整型
{ *括弧里是函數內容
if (i<4) *如果i小於4(i應該是年數)
return 1; *T(i)=1,很好理解,4年內母牛不會生小牛
return (T(i-1)+T(i-4)); *否則將T(i)這個函數改變自變數遞歸
}
int main() *這里是主函數
{
int i; *聲明變數i(c語言用變數之前要聲明,很麻煩)
scanf("%d",&i); *輸入一個值賦給i
printf("%d\n",T(i));*運用子函數T(i)解出值並輸出
}
如果你不理解遞歸,你可以隨便給i一個大於4的值用筆算一下
**c語言允許在主函數外定義函數,主函數main前面的int可寫可不寫,因為函數前如果不定義返回值類型的話將默認為整型int,我調試後發現那個子程序的演算法是錯的,要用別的演算法。**如果你還有什麼其他的問題可以用網路hi和我討論
另外這個程序沒有#include<stdio.h>,也就是沒有調用輸入和輸出的頭文件
我昨天晚上就回答你的補充問題了你有沒有好好看
3. 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]。
理解應該沒問題吧
4. 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頭母牛
不知道你要的是不是這樣的結果?
5. c語言關於奶牛的問題
#include "stdio.h"
main()
{
int a=1,b=15,c=20,d=1,j=1,k;
for(c=20;c<0;c--)
{
b=b-1; /*母牛生一次,減掉一年的壽命*/
a=a*2; /*每生一次,得到的牛*/
if(c>=16)
{
d=d*2; /*小牛生的牛*/
a=a+d; /*老牛加上小牛*/
}
if(b<=0)
{
j=j*2; /*死去的牛*/
a=a-j; /*總共的牛減去死去的牛*/
}
k=a;
}
printf("%d",k);
}
6. C語言設有一頭小母牛,從出生第四年起每年生一頭小母牛,按此規律,第N年時有幾頭母牛 求解釋
n-1說的是去年一共有多少頭,然後n-3說的是3年前有多少頭(也就是說性成熟可生育的母牛數量),那麼去年的牛數加上可生育的牛數量(也就是今年新產的小牛數量)就是今年牛數量
舉個例子,第5年就是第四年的牛數量加上第2年的牛數量(第二年的牛已經全部可以生育了)
7. 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}
8. 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;
}
9. c語言問題,母牛生小母牛
如果想直接用程序模擬全部過程,可以用4個變數x1,x2,x3,x4.
x1=第1年的牛.
x2=第2年的牛.
x3=第3年的牛.
x4=可以生小牛的牛(>=4歲).
從第一年開始推,則第二年的狀態:
t=x4; (新生的牛)
x4=x4+x3; (第3年的牛長了一歲)
x3=x2; (第2年的牛長了一歲)
x2=x1; (第1年的牛長了一歲)
x1=t; (新生的牛)
依此類推.