您的位置:首页 > 其它

费波拉契问题的变形

2016-04-06 11:33 232 查看
奶牛生子问题----------腾讯面试
题目:一只刚出生的奶牛,4年生一只奶牛。以后每一年生一只,现在给你一只刚出生的奶牛,求20年后有多少奶牛,考核分析能力
本题难点在于:不光这只奶牛会生奶牛,它的孩子的孩子也会生奶牛。
#include<iostream>
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  费波拉契