斐波那契数列简而言之即:数列中,前两个数是1和2,从第三个数起,值为它前两个数的和。
落到实际应用极为经典的 “爬楼梯” 问题:爬楼梯时每次迈步上上爬有两种选择,每次迈一个台阶和每次迈两个台阶。最后一步正好上至楼梯的最后一层。
分析:
当有1阶台阶时,有且只有1种方法,即:使用一步一阶,迈一次。
当有2阶台阶时,有2种方法,即:1步2阶,迈1次;1步1阶,迈两次。
当有3阶台阶时,有3种方法,即:1、第一步1阶,第二步2阶;2,第一步2阶,第二步1阶;3、每一步都迈1阶,迈3次。
当有4阶台阶时,有5种方法,即:1、一步1阶;2、一步2阶;3、第一步1阶,第二步2阶,第三步1阶;4,第一步2阶,后面两步分别1阶;5、前两步分别1阶,最后一步2阶。
.....
用 JavaScript 实现:如果台阶数是 n,有多少种迈法。
目前尝试三种方法:
1、函数递归,效率最低:
function stair1(n){
if(n<3){
return n;
}else{
return stair1(n-1)+stair1(n-2);
}
}
2、使用数组ÿ