昆虫繁殖
题目描述:科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月 产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵 长成成虫后的第一个月不产卵(过x个月产卵),问过z个月以后,共有成虫多少对? 0≤x≤20,1≤y≤20,X≤z≤50 输入: x,y,z的数值。 输出:过z个月以后,共有成虫对数。
输入复制
1 2 8
输出复制
37
#include<bits/stdc++.h>
using namespace std;
long long a[100010]={0};
long long b[100010]={0};
long long c[100010]={0};
int main()
{
a[1]=1;
int x,y,z;
cin>>x>>y>>z;
for(int i=2;i<=z+1;i++)
{
if(i-x<0)b[i]=0;
else b[i]=a[i-x]*y;
c[i]=b[i-1];
a[i]=a[i-1]+c[i-1];
}
cout<<a[z+1];
return 0;
}
踩方格
题目描述:有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:
a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b、走过的格子立即塌陷无法再走第二次;
c、只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法 只要有一步不一样,即被认为是不同的方案。输入: 允许在方格上行走的步数n(n≤20)。 输出: 计算出的方案数量。
输入复制
2
输出复制
7
#include<bits