#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; }