昆虫繁殖

发布时间 2023-08-03 20:11:12作者: 爱吃泡面的皮卡
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int x,y,z;
int a(int z){
    if(z<x+2){
        return 1;
    }
    return a(z-1)+a(z-x-2)*y;//a(n-1)*n
}
int main(){
    int c;
    cin>>x>>y>>z;
    c=a(z);
    cout<<a(z);
    return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long a[60],b[60];
//    1个月产2个卵8个月后成虫个数     
//    月份    成虫    卵    卵成虫月份 
//     1        1        0    
//     2        1        2    -4
//     3        1        2    -5
//     4        3        2    -6
//    5        5        6    -7
//    6        7        10    -8
//    7        13        14  -9
//    8        23        26
//    9         37        46
int main(){
    int x,y,z;
    int i;
    cin>>x>>y>>z;//x月产 y对卵 z个月后成虫 
    for(i=1;i<=x;i++){
        a[i]=1;//第 i个月成虫 
        b[i]=0;//第 i个月卵 
    }
    for(i=x+1;i<=z+1;i++){
    //第 i-x 月的成虫在 x 个月后产下 y 个卵 
    
        a[i]=a[i-1]+a[i-x-2]*y;//第 i 个月的成虫等于第 i-1 个月的成虫加上 i-2 个月的卵 
    }
    cout<<a[z+1]<<endl;
//cout<<b[z+1]; ??输出卵数 
    return 0;
}