• 简单递推 HDU-2108


    要成为一个ACMer,就是要不断学习,不断刷题。。。最近写了一些递推,发现递推规律还是挺明显的,最简单的斐波那契函数(爬楼梯问题),这个大家应该都会,看一点稍微进阶了一点的,不是简单的v[i] = v[i-1]+v[i-2]了,但也是基础题

                    母牛的故事

    有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

    Input输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 
    n=0表示输入数据的结束,不做处理。Output对于每个测试实例,输出在第n年的时候母牛的数量。 
    每个输出占一行。Sample Input2
    4
    4
    5
    5
    0
    0Sample Output2
    4
    4
    6
    6

    母牛数量         天数

    //1                 1
    //1+1             2
    //1+2             3
    //1+3             4
    //1+4+1         5
    //1+5+2+1     6
    //1+6+3+2+1 7

    经过写了几行相信大家已经找到规律了。v[i] = v[i-1]+v[i-3],刚开始我写的递推是v[i]=v[i-1]+i-3;忽略了一头牛生了小牛以后小牛过4年可以继续生。。导致WA了一次,尴尬。。。

    代码如下:

    #include<iostream>
    #include<cstdio>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int v[60] = { 0,1,2,3,4 };
    int main()
    {
        int n;
        for (int i = 5; i <= 55; i++)
        {
            v[i] = v[i - 1] + v[i - 3];
        }
        while (cin >> n)
        {
            if (n == 0)
            {
                break;
            }
            cout << v[n] << endl;
        }
        return 0;
    }
  • 相关阅读:
    angular js 删除及多条删除
    angular js 页面修改数据存入数据库
    angular js 页面添加数据保存数据库
    angular js 分页
    内置函数和匿名函数
    装饰器,迭代器,生成器
    函数的进阶
    函数
    文件操作
    列表,字典
  • 原文地址:https://www.cnblogs.com/Anony-WhiteLearner/p/6231331.html
Copyright © 2020-2023  润新知