您的位置:首页 > 其它

递推递归--A母牛的故事

2017-04-10 19:04 141 查看
1.题目概述

第一年有一头老母牛,第二年起生一头小母牛,每头小母牛第四年会生小母牛,第n年会有多少头。

2.思路分析

分两方面,定义两个数列a[100],b[100]。a
代表牛的总量,b
代表第n年新生小牛的数量,那么第n年牛的总量就是

n-1年牛的总量加上第n年新生的小牛数量。即a
=a[n-1]+b
.

3.代码

#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>c;
int a[60]={1},b[60]={0},i,n,j;
for(j=0;;j++)
{
cin>>n;
if(n!=0)
{
for(i=1;i<=3;i++)
{
a[1]=1;
a[2]=2;
a[3]=3;
b[1]=0;
b[2]=1;
b[3]=2;
}
for(i=3;i<=n;i++)
{
b[i]=a[i-3];
a[i]=a[i-1]+b[i];
}
c.push_back(a[n]);
}
else
break;
}
for(i=0;i<c.size();i++)
{
cout<<c[i]<<endl;;
}
return 0;
}

4.感受

将问题进行分情况考虑,会将问题简单化。将新生的数量和总量进行分开储存比较好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: