巴尔扎哈的疑惑 南邮NOJ2070

马尔扎哈的疑惑

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 247            测试通过 : 76 

题目描述

    众所周知,虚空先知马尔扎哈的被动技能可以召唤宠物用来辅助战斗,但可惜的是,宠物数量最多只能有3个,显然,这不够强力。

    最近,通过马尔扎哈的不懈努力,终于改进了这个技能——他第1秒时只有一个宠物,该宠物每过一秒又可以生出一个新宠物,而新宠物从他出生的第3秒开始,每过一秒也可以生出一个新宠物,新的宠物也以此类推。

    请问,在第n秒时,马尔扎哈总共有多少个宠物?



输入

先输入一个正整数T,表示样例个数,1T100;

对于每一个测试样例,输入一个正整数n,表示第n秒,1n55。

输出

对于每一个测试样例,输出第n秒时,马尔扎哈拥有的宠物数。

题目保证结果在int范围内。

样例输入

2
4
5

样例输出

4
6


跟做的一道求第N年树木枝干的数目有些相似。

#include <cstdio>
int a[56];
int main()
{
    int n;
    scanf("%d", &n);
    int x;
    a[1] = 1;
    a[2] = 2;
    a[3] = 3;
    for(int i = 4; i <= 61; i++)
        a[i] = a[i - 1] + a[i - 3];
    while(n--)
    {
        scanf("%d", &x);
        printf("%d
",a[x]);
    }
}

起初第一次做这样的,不知道优化题解,这是参考田神的做法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/Tobyuyu/p/4965669.html