1. 题目
2. 思路
(1) 斐波那契数列
- 从后向前推导:当青蛙跳最后一步时,要么剩1个台阶,则此时共有f(n-1)种跳法,要么剩2个台阶,则此时共有f(n-2)种跳法,因此跳上n级台阶共有f(n)=f(n-1)+f(n-2)种跳法,满足斐波那契数列。
- 从前向后推导:手算可得f(0)=1、f(1)=1、f(2)=2、f(3)=3、f(4)=5、f(5)=8……大胆推测f(n)=f(n-1)+f(n-2),即更改了初始条件的斐波那契数列。
3. 代码
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public int numWays(int n) {
int f0 = 1;
int f1 = 1;
while (n > 0) {
f1 += f0;
f0 = f1 - f0;
f1 %= 1000000007;
n--;
}
return f0;
}
}