题目要求
分析
记得讲过的跳台阶问题吗?那个题限制一个或两个台阶,故可以使用递推式求解,那这个题个台阶其实也是类似的。
到达某一个台阶的所有可能是到达其下个台阶的所有可能总和,所以递推式是:
也就是:
注意:对100003取模。
AC代码(Java语言描述)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(), k = scanner.nextInt();
scanner.close();
int[] nums = new int[n+1];
nums[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= k && i-j >= 0; j++) {
nums[i] += nums[i-j];
nums[i] %= 100003;
}
}
System.out.println(nums[n]);
}
}