台阶问题
题意
有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。
分析
递推公式a[i]:=a[i]+a[i-j];
var
n,k,i,j:longint;
a:array[-1000..100000]of longint;
begin
read(n,k);
a[0]:=1;
for i:=1 to n do
for j:=1 to k do
a[i]:=(a[i]+a[i-j]) mod 100003;
write(a[n]);
end.
有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。
分析
递推公式a[i]:=a[i]+a[i-j];
var
n,k,i,j:longint;
a:array[-1000..100000]of longint;
begin
read(n,k);
a[0]:=1;
for i:=1 to n do
for j:=1 to k do
a[i]:=(a[i]+a[i-j]) mod 100003;
write(a[n]);
end.