有 N N N 级台阶,你一开始在底部,每次可以向上迈 1 ~ K 1\sim K 1~K 级台阶,问到达第 N N N 级台阶有多少种不同方式。
两个正整数 N , K N,K N,K。
一个正整数 a n s ( m o d 100003 ) ans\pmod{100003} ans(mod100003),为到达第 N N N 级台阶的不同方式数。
5 2
8
#include<iostream>
#include <vector>
using namespace std;
int num = 100003;
int n, k;
vector<int> dp(100000); // 定义数组
int main() {
cin >> n >> k; // 输入数据
dp[0] = 1;
for (int i = 0; i <= n; i++) {
for (int j = 1; j <= k; j++) {
if (i >= j) {
dp[i] = (dp[i] + dp[i - j]) % num;
}
}
}
cout << dp[n] << endl;
return 0;
}