1740: 蝴蝶繁殖
题目描述
在一个神秘的森林中某种蝴蝶化茧成蝶繁殖的过程为:每对蝴蝶过x个月产y对卵,每对卵要过两个月长成蝴蝶。
假设每个蝴蝶都不死的情况下,第一个月只有一对蝴蝶,且卵长成蝴蝶后的第一个月不产卵(过x个月产卵),问过z个月以后,共有多少对蝴蝶?
输入
x,y,z的数值输出
过z个月以后,共有多少对蝴蝶。样例输入
1 2 8
样例输出
37
提示
0=<x<=20,1<=y<=20,x=<z<=50 样例:1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
1 | 1 | 1*2+1=3 | 1*2+3=5 | 1*2+5=7 | 3*2+7=13 | 5*2+13=23 | 7*2+23=37 |
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 long long dp[55]; 5 int x,y,z; 6 cin>>x>>y>>z; 7 for(int i = 0;i<x+2;i++){ 8 dp[i]=1;//前x+1天(0 1 2)初始值 9 } 10 for(int i = x+2;i<=z+2;i++){ 11 dp[i]=dp[i-1]+dp[i-2-x]*y;//方程 12 } 13 cout<<dp[z]; 14 return 0; 15 }
ok~~~