题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解释:当青蛙跳上一个n级的台阶时,设跳上n阶梯的跳法有a[n]种,则
a[n]=a[n-1]+a[n-2]+a[n-3]…..a[2]+a[1]+1;因为可以一次性直接跳上n阶梯,所以后面要加1,其实从a[3]开始每一个后面都加过1的。
import java.util.Scanner;
public class AbnormalJumpStep {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
System.out.println(JumpFloorII(n));
}
public static int JumpFloorII(int target) {
int a[]=new int[target+10];
a[1]=1;
a[2]=2;
for (int i =3; i <=target; i++) {
int sum=0;
for (int j = 1; j <i; j++) {
sum=sum+a[j];
}
a[i]=sum+1;
}
return a[target];
}
}