c语言母牛生小牛程序框图,C语言母牛问题

一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛。假设每次生的都是母牛,并且也遵守4年才能生育并生母牛的原则,并且无死亡,请问N年后共有过少头牛?

看到这个题目的时候 猛地想笑,这没有公牛,母牛能生小牛吗? 呵呵 不过这也仅仅是个问题而已 废话少说,开始正题。其实这是一类经典的题目,早在接触C语言的时候就有这种类型的题目,不过说的是兔子,在此小弟也将那个问题搬来了,做个参考:

有一兔子,从出生后第3个月起每个月都生一兔子。小兔子长到第3个月后每个月又生一兔子。假设所有兔子都不死,问每个月的兔子总是为多少?

可以从下表中看出兔子繁殖的规律:第几个月小兔子数中兔子数老兔子数兔子总数11001

20101

31012

41113

52125

63238

753513

…………………………

可以看到每个月的兔子总数依次为1,1,2,3,5,8,13……

C语言的解法如下:#include "stdio.h"

void main()

{

long int f1=1,f2=1;

int i;

for(i=1;i<=10;i++){ //前20天小鸡数

printf("%5d%5d",f1,f2);

if(i%2==0) printf("\n"); //四个数字一行

f1=f1+f2;

f2=f1+f2;

}

}

至于运行结果,有兴趣的盆友可以自己运行一下。

小鸡问题其实就是斐波那契数列,需要注意的是循环10次其实输出是20个数。

可以从下表中看出小牛繁殖的规律:第几年母牛第一阶段母牛第二阶段母牛第三阶段母牛生崽阶段母牛总数110001

201001

300101

410012

511013

611114

721126

832139

9432413

10643619

11964928

1213961341

………………………………

可以看到每个月的兔子总数依次为1,1,1,2,3,4,6,9,13,19,28,41……

规律:从第四个月开始=>母牛数为 n-1年+ n-3年的数量 a[i]=a[i-1]+a[i-3]#include "stdio.h"

void main()

{

int i,a[21];

a[1]=a[2]=a[3]=1;

for(i=4;i<=20;i++){

a[i]=a[i-1]+a[i-3];

}

printf("%d ",a[20]);

}

看到这个问题头都大了,这个该怎么算,百度后发现列个表,很快就能找到数据,学好数学真的有用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值