当前位置:首页 » 编程语言 » c语言中母牛繁殖问题
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中母牛繁殖问题

发布时间: 2022-04-15 17:58:38

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年的牛数量(第二年的牛已经全部可以生育了)