/**
* n个楼梯 走楼梯 1次走1个或2个或3 求多少种走法
* @author ly
*
*/
public class Stair {
public static void main(String[] args) {
System.out.println(getStait(3));
System.out.println(getStait(4));
System.out.println(getStait(5));
System.out.println(getStait(6));
}
public static int getStait(int n){
int a = 1;//f(0) f(0)=1
int b = 1;//f(1) f(1)就一种走法
int c = 2;//f(2) f(2)两种走法
int result=0;
//f(n) = f(n-1)+f(n-2)+f(n-3) 一次走一个楼梯,一次走2个,一次走3个
for(int i =3;i<=n;i++){
result = a+b+c;//求得f(i)
a=b;
b=c;
c=result;
}
return result;
}
}