一共有n阶楼梯,你每次至多可以爬k阶,编写程序,对于指定的n,k输出所有可以正好爬到n阶楼梯的方案的个数。例:输入:32输出:3(n=3,k=2,方案是1+1+1=3,1+2=3,2+1=3)输入:54输出:15(11111111211211211211122121212231113111323321441)输入:10 3输出:274
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int a[] = new int[n+1];
for(int i=1;i<=k;i++){
a[i] = (int)Math.pow(2,i-1);
}
for(int i=k+1;i<=n;i++){
a[i] = 0;
for(int j=1;j<=k;j++) {
a[i] += a[i - j];
}
}
System.out.println(a[n]);
}