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

来源:互联网 发布:云镜安卓限制安装软件 编辑:程序博客网 时间:2024/04/30 23:58
1.题目概述
第一年有一头老母牛,第二年起生一头小母牛,每头小母牛第四年会生小母牛,第n年会有多少头。
2.思路分析
分两方面,定义两个数列a[100],b[100]。a[n]代表牛的总量,b[n]代表第n年新生小牛的数量,那么第n年牛的总量就是
n-1年牛的总量加上第n年新生的小牛数量。即a[n]=a[n-1]+b[n].
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.感受
将问题进行分情况考虑,会将问题简单化。将新生的数量和总量进行分开储存比较好。

0 0
原创粉丝点击