费波拉契问题的变形

奶牛生子问题----------腾讯面试 

蠡县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

题目:一只刚出生的奶牛,4年生一只奶牛。以后每一年生一只,现在给你一只刚出生的奶牛,求20年后有多少奶牛,考核分析能力

本题难点在于:不光这只奶牛会生奶牛,它的孩子的孩子也会生奶牛。

#include
using namespace std;
int Cal(int year)//法一
{
	if (year < 4)
		return 1;
	return Cal(year - 4) + Cal(year - 1);
}
int CalCowsNum(int year)//法二
{
	int cnt = 0;
	long cowsNum = 1;//奶牛总数
	for (cnt = 1; cnt <= year; ++cnt)
	{
		if (cnt >= 4)
		{
			if ((year - cnt) > 3)
			{
				cowsNum += CalCowsNum(year - cnt);
			}
			else
			{
				cowsNum++;
			}
		}
	}
	return cowsNum;
}
int main()
{

	int year = 20;
	cout << CalCowsNum(year) << endl;
	system("pause");
	return 0;
}

分享文章:费波拉契问题的变形
转载来源:http://scyanting.com/article/psohjd.html