1013

1.题目编号:
1013
2.简单题意:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
3.解题思路形成过程:
还是递归
4.感想
这题也是曾经做过的,但是那时候不懂递归,就硬是多写出来几组找出规律
5.AC代码

#include<iostream>
#include<stdio.h>
#include<string.h>
int c[56];
using namespace std;


int f(int);
int main()
{
    memset(c,-1,sizeof(c));

    int t,x;
    while(cin>>t,t)
    {
        cout<<f(t)<<endl;
    }
}

int f(int a)
{
    if(c[a]>0)  return c[a];
    if(a==0)    return 0;
    if(a==1)    return 1;
    if(a==2)    return 2;
    if(a==3)    return 3;
    if(a==4)    return 4;
    //今年的牛等于去年的牛加上三年前就有的牛,三年前的牛正好是小牛的个数
    return c[a]=f(a-3)+f(a-1);
}

你可能感兴趣的:(1013)