需求:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
此题的突破口在台阶数;台阶数不一样,结果就不一样;由台阶数来找规律。
台阶数 | 跳法 |
1 | 1 |
2 | 2 |
3 | 4 |
4 | 8 |
5 | 16 |
6 | 32 |
...... | ...... |
通过分析台阶数,可以看出当台阶数为n时,跳法数为前两个之和,设跳法数为函数f(n),则有:
f ( n ) = 2 * f( n - 1 );
这是一个一个斐波那切数列,所以转化为求解斐波那切数列问题
实现代码:
import java.util.Scanner;
public class Solution {
public static int f(int n) {
if(n<2){
return n;
}else{
return 2*f(n-1);
}
}
public static void main(String[] args) {
System.out.