100分
题目
一天一只顽猴想要从山脚爬到山顶,途中经过一个有 n 个台阶的阶梯,但是这个猴子有个习惯,每一次只跳 1 步或 3 步。试问猴子通过这个阶梯有多少种不同的跳跃方式。
输入
输入只有一个数 n, 0 <= n <= 50,代表此阶梯有多个台阶。
输出描述
一个整数,表示有多少种跳跃方式。
示例1
输入:50
输出:122106097
示例2输入:3
输出:2
代码思路
java
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println(countf(n));
}
public static int countf(int n){
if(n<=2){
return 1;
}
int[] dp = new int[n+1];
dp[1]=1;
dp[2]=1;
dp[3]=2;
for(int i=4;i<n+1;i++){
dp[i] = dp[i-1]+dp[i-3];
}
return dp[n];
}
}