XP的楼梯
题目描述
XP是个淘气的孩子,他最近迷上了跳楼梯。他可以一次跳一级,也可以一次跳两级,他居然还能够一次跳三级楼梯(危险动作,请勿模仿)。某次,XP在跳完楼梯后突然想到一个问题,如果有n级楼梯,他从第一级开始往上跳,一直跳到第n级共有多少种不同的方案?你能帮他解决这个问题吗?当然,如果只有一级楼梯,很明显他只有一种选择。
输入
单组输入数据 n (0<n<30)
输出
输出一行结果
样例输入 Copy
29
样例输出 Copy
15902591
Code
package Week2;
import java.util.Scanner;
public class Q5 {
//XP是个淘气的孩子,他最近迷上了跳楼梯。他可以一次跳一级,
// 也可以一次跳两级,他居然还能够一次跳三级楼梯(危险动作,请勿模仿)。
// 某次,XP在跳完楼梯后突然想到一个问题,如果有n级楼梯,他从第一级开始往上跳,
// 一直跳到第n级共有多少种不同的方案?你能帮他解决这个问题吗?当然,如果只有一级楼梯,很明显他只有一种选择。
public static void main(String[] args) {
int n,sum=0;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
sum = fun(n);
System.out.println(sum);
}
public static int fun(int n){
if (n==1){
return 1;
}
else if(n==2){
return 1;
}
else if(n==3){
return 2;
}else{
return fun(n-1)+fun(n-2)+fun(n-3) ;
}
}
}