1、问题描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
2、问题实质: 斐波那契数列
3、问题分析
| 台阶数量 | 方法数量 |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 5 |
| … | … |
由数学归纳法,得出:
F(n)=F(n-1)+F(n-2),
其中:n表示台阶数量,F( . )表示方法数量。
4、代码
package com.tyutypj.com;
public class JumpFloor {
public static Long jumpFloor(int n){
if(n == 0){
return 0L;
}
long arr[] = new long[n];
arr[0] = 1L;
arr[1] = 2L;
arr[2] = 3L;
for(int i=3;i<n;i++){
arr[i] = arr[i-1] + arr[i-2];
arr[i-1] = arr[i];
arr[i-2] = arr[i-1];
}
return arr[n-1];
}
public static void main(String[] args) {
System.out.println(jumpFloor(39));
}
}
5、运行结果

本文详细解析了青蛙跳台阶的问题,通过斐波那契数列的递推公式,给出了求解不同台阶数下所有可能跳跃路径的方法。并提供了一段Java实现的代码,最后展示了当台阶数为39时的跳法总数。
200

被折叠的 条评论
为什么被折叠?



