acm专题三1013

Total Submission(s) : 86   Accepted Submission(s) : 49
Problem Description
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
 

Input
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。<br>n=0表示输入数据的结束,不做处理。
 

Output
对于每个测试实例,输出在第n年的时候母牛的数量。<br>每个输出占一行。
 

Sample Input
  
  
2 4 5 0
 

Sample Output
  
  
2 4 6

(1)题目大意:

由于是中文题目,不难理解。就是一头母牛年初生一头,小牛四年后可以生,问n年后多少牛。

(2)思路:

我这到严格来讲,不是用的动态规划,我的比之简单点。我是用一个一维数组,分别存储1 。0。 0。 0四个数,然后没过一年数组之间相互循环链接转移值。当第四年后,从age[0]开始循环加1,代表小牛可以生了。

(3)感想:

如果是动态规划,相对会麻烦一些。我也没怎么想出来,我就用了一个这样的,自己还不清楚是不是所谓动态规划,不过这样的方法比较简单。虽然有参考别人,但是参考也是学啊

(4)代码:

#include<iostream>
using namespace std;
int main(void)
{
    
    int count = 1, i, temp, year;
    while (cin >> year&&year != 0)
    {
        int age[4];
        age[0] = 1;
        age[1] = 0;
        age[2] = 0;
        age[3] = 0;
    
        for (i = 0; i <= year; i++)
        {
            temp = age[3];
            age[3] += age[2];
            age[2] = age[1];
            age[1] = age[0];
            age[0] = age[3];
            count += age[3];
        }
        cout << count << endl;
        count = 1;
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值