问题:n级的台阶,每次可以跨一步,有m种跨法,求爬到第n阶台阶,共有多少种不同的爬法?
例: 一个猴子在一座30级台阶的山上爬山,猴子上山一步可跳1级,或3级,试求上山的30级台阶有多少种不同爬法
input:
30 2
1
3
output:
58425
input:
50 4
2
3
5
6
output:
106479771
#include<iostream>
using namespace std;
int main()
{
int i,j,k,n,m,stage[100]={0},step[100];
cin>>n>>m;
for(i=0;i<m;i++)
{
cin>>step[i];//需从小到大输入跨步方法
stage[step[i]]=1;//eg: step[0]=3,stage[3]=1 意味着第0种跨法