题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
通过:100%
思路:延续上一题的思路:
f(n)表示上n阶的跳法
f(n) = f(1)+f(2)+f(3)+...+f(n-2)+f(n-1)+f(n)+1;
因为最后一步可以为1,2,3,4....n-1,所以f(n)就等于上台阶1,2,3到n-1的和加一。加一是因为没有算到最后一步可以一步n阶。
public class A09变态跳台阶 {
public static void main(String[] args) {
//测试
System.out.println(JumpFloorII(5));
}
public static int JumpFloorII(int target) {
if(target == 1) {
return 1;
}
int[] arra = new int[target];
arra[0] = 1;
for(int i = 1; i < target; i++) {
arra[i] = addAll(arra,i) + 1;
}
return arra[target - 1];
}
//数组的和
public static int addAll(int[] array,int n) {
int number = 0;
for(int i = 0; i < n; i++) {
number += array[i];
}
return number;
}
}