1312:昆虫繁殖

【题目描述】

科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤X≤20,1≤Y≤20,X≤Z≤50。

【输入】

x,y,z的数值。

【输出】

过Z个月以后,共有成虫对数。

【输入样例】

1 2 8

【输出样例】

37

首先我们要明白这一过程:想要计算  第 i 月的成虫,是由前一个月(即 第 i-1 月)在这个月刚好变为的成虫

在 i-2月之前他们还是卵,再往前推x个月,是卵诞生的时候(在 i-2-x月 到 i 月之前,他们都没有作为成虫的一份子)

#if(1)

/*#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <cstring>
#include <stack>*/
#include <bits/stdc++.h>

#define A 1000+5

using namespace std;

const int maxn=100+5;
int cnt;
long long a[maxn];
int i,j;

int main()
{
    int x,y,z;
    cin>>x>>y>>z;

    for(i=1;i<=x;i++)//产卵之前,都是一个
    {
        a[i]=1;
    }

    for(i;i<=z+1;i++)
    {
        a[i]=a[i-1]+a[i-x-2]*y;  //前一月的成虫+刚刚变成的成虫
    }

    cout<<a[z+1];

    return 0;
}

#endif
发布了156 篇原创文章 · 获赞 8 · 访问量 3891

猜你喜欢

转载自blog.csdn.net/C_Dreamy/article/details/104106153