如题:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
实例1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
实例2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
额,一开始看到这道题其实真没什么思路,楼梯数量少倒是还好办,楼梯数量一多起来,感觉稍微有点乱,看似凌乱无规则,我们再多整理几个实例找找规律
输入1---输出1
输入2---输出2
输入3---输出3
输入4---输出5
输入5---输出8...
输入n---输出f(n-1)+f(n-2)
这???感觉有点眼熟,这不是斐波那契数列么
默默地把前几天写的递归方法拿过来
function fibonacci (n) {
if ( n === 1 ) {return n};//1的正常输出
//fibonacci(n)=fibonacci(n - 1) + fibonacci(n - 2);
return fibonacci(n - 1) + fibonacci(n - 2);
}
熟悉的斐波拉契数列的规律代码就简单了