package com.bjs.test;
public class Stairs {
/**
* @author Cxl
* @version 2013-1-8 下午2:44:43
* @Contract http://wzwahl36.net
* @param args
*/
public static void main(String[] args) {
int n = 2;
int maxStep = 2;
System.out.println("方案数:" + getStepNum(n, maxStep));
}
/**
*
* @author Cxl
* @version 2013-1-8 下午2:29:31
* @Contract http://wzwahl36.net
* @param n 总的台阶数
* @param m 一次可以走的最大楼梯阶数
* @return
*/
private static int getStepNum(int n, int m) {
int sumStep = 0;
//总台阶数为0时,终止递归循环
if (n == 0) {
return 1;
}
if (n >= m) {
//如果n大于每步最大台阶数,则设置第一步为m之内的一个台阶数,然后递归循环
for (int i = 1; i <= m; i++) {
sumStep += getStepNum(n - i, m);
}
}
//如果n小于m,则将一步最大台阶数缩小为n,重新递归
else {
sumStep = getStepNum(n, n);
}
return sumStep;
}
}
直接上代码