题目描述
有 N 级台阶,你一开始在底部,每次可以向上迈 1∼K 级台阶,问到达第 N 级台阶有多少种不同方式。
输入格式
两个正整数 N,K。
输出格式
一个正整数 ans(mod100003),为到达第 N 级台阶的不同方式数。
输入输出样例
输入 #1
5 2
输出 #1
8
说明/提示
- 对于 20%20% 的数据,1≤N≤10,1≤K≤3;
- 对于 40%40% 的数据,1≤N≤1000;
- 对于 100%100% 的数据,1≤N≤100000,1≤K≤100。
程序如下
#include<bits/stdc++.h>
using namespace std;
int f[100005],n,k;
int main()
{
cin>>n>>k;
f[0]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=min(i,k);j++)
f[i]=(f[i]+f[i-j])%100003;
}
cout<<f[n];
return 0;
}