20190731-coding-01-牛牛繁殖

题目描述

怪物牛,一对牛每月繁殖一对小牛,每一对小牛在出生以后,需要三个月的时间生长,第四个月开始繁殖。

要求:计算初始数量为m对牛对情况下,第n个月牛的总数(对)

输入:第一行为n,表示有n组数据,之后对每行为每组数据

输出:结果,每组结果占一行

思路

按照题目描述来,关键是递归的条件,其实没有想象中复杂哦,虽然做了很久。

代码

/*
 * main.c
 *
 *  Created on: 2019年7月31日
 *      Author: PENNY
 */

#include "stdio.h"
int cal_n_month_late_cow_number(int m_cow,int n_month)
{
	int cow_sum=0;
	if(n_month<=4)
	{
		cow_sum = m_cow*(n_month+1);
	}
	if(n_month>4)
	{
		cow_sum = m_cow*n_month+cal_n_month_late_cow_number(m_cow,n_month-3);
	}


	return cow_sum;
}

int main()
{
	int test_num,results;
	int i;
	int m_cow[100]={0}; 		//100为最多可以有多好组测试数据,牛的数量
	int n_month[100]={0};		//多少个月

	printf("please enter test data number:");
	scanf("%d",&test_num);
	//对多组数据输入的处理,这里要利用到之前输入的test_num

	printf("请输入 cow_number month_number \n");
	for(i=0;i<test_num;i++)
	{
		scanf("%d %d",m_cow+i,n_month+i);
	}

	for(i=0;i<test_num;i++)
	{
		results = cal_n_month_late_cow_number(m_cow[i],n_month[i]);
		printf("cow_sum %d\n",results);
	}
	
	return 0;
}

总结

注意的事情,一个是临界条件,一个是递归的方式,抓住主要矛盾! 

 

 

 

上一篇:Day003 JavaDoc


下一篇:推荐几款热门的敏捷开发工具