奶牛产子问题

奶牛产子问题

奶牛第1次产子,间隔时间为3年,其余每隔2年产子一次,问40年后总多少牛?

 

个人写了一个算法,如果有问题请指正

 

#include "stdafx.h"

 

int year2CreateSun(int year_n);
int OneMileCreateSun(int year_n);
int MCSun(int year_n);

 

static int total=0;

 

int main(int argc, char* argv[])
{
 int year =40;
 MCSun(year);
 printf("year =%d   %d/n",year,total+1);    //加1是把本来的第一头牛加进去
 return 0;
}

 

int year2CreateSun(int year_n)
{  
 if ( year_n >= 2 )
 {
  int t= year_n / 2;
  return t;
 }
 else
  return 0;
}

 

int OneMileCreateSun(int year_n)
{
 int t =0;
 int t2 =0;

 if ( year_n >= 3 )
 {  
  t2 = year2CreateSun(year_n -3);
  t =  t2 + 1;//加1表示隔三年第1次产子
 } 
 else
  return 0;

 return t;
}

 

int MCSun(int year)

 int t =0;
 t = OneMileCreateSun(year);
 total = total + t;

 int n=0;
 int m=0;
 if ( year >= 3 )
 {  
  n = (year-3) / 2 + 1;
 } 
 else
  return 0; 
 
 for (int i=0; i< n; i++)
 {
  //计算年 
  m =year - 3 - 2 * i;

  //递归调用
  MCSun(m);
 }
 
 return 0;
}

 

 

运行结果:

year =40   55404

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值