题目描述
有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007
给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。
测试样例:
1
返回:1
package Chapter9;
public class GoUpstairs {
public int countWays(int n) {
return go(n);
}
public static int go(int n){
if(n==0){
return 0;
}
if(n==1){
return 1;
}
if(n==2){
return 2;
}
if(n==3){
return 4;
}
return go(n-1)+go(n-2)+go(n-3);
}
public static void main(String[] args) {
System.out.println(new GoUpstairs().countWays(6));
}
}