学习目标:
目标:熟练运用Java所学知识
学习内容:
本文内容:使用java解决 变态青蛙跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
示例1
输入
3
输出
4
解题思路
一共有n阶台阶,f(n)表示跳上n阶台阶的跳法
推导:
- 当第一次选择跳 1 个台阶的时候,则剩下的 n-1 个台阶,跳法有 f(n-1) 种
- 当第一次选择跳 2 个台阶的时候,则剩下的 n-2 个台阶跳法就是 f(n-2) 种
.
.
. - 当第一次选择跳n-1个台阶的时候,剩下的1个台阶跳法有f(1)种
- 当第一次选择跳 n 个台阶的时候,剩下了 0 个台阶,跳法只有1中
所以
有一阶的时候 f(1) = 1 ;
有两阶的时候 f(2) = f(1)+1=2;
有三阶的时候 f(3) = f(2)+f(1)+1=4;
综上推导n阶台阶的跳法 f(n)=f(n-1)+f(n-2)+…+f(1)+1;
依次类推,得到类推公式有n阶时:f(n)=2^(n-1)。
实现代码
public class Solution {
public int jumpFloorII(int target) {
int a=1;
for(int i=1;i<target;i++){
a*=2;
}
return a;
}
}