题目:有n阶楼梯,每次只能上1阶或者2阶段,有多少种走法?
问题分析:如果有n个台阶,那么上到n阶,肯定是从n-1,或者n-2上来的。那么要求n个台阶的走法。
只要求出n-1个台阶的走法 + n-2个台阶的走法。
依次类推
f(n) = f(n-1) + f(n-2)
f(n-1) = f(n-2) + f(n-3)
...
f(3) = f(2) + f(1);
f(2) = 2;
f(1) = 1;
function getResult(n) {
if(n === 1) {
return 1;
}
else if(n === 2) {
return 2;
}
else {
return getResult(n-1) + getResult(n-2);
}
}
function getResult(n) {
if(n === 1) {
return 1;
} else if(n === 2) {
return 2;
} else {
let fn_2 = 1;
let fn_1 = 2;
let fn;
for(let i = 3; i <= n; i++) {
fn = fn_1 + fn_2;
fn_2 = fn_1;
fn_1 = fn;
}
return fn;
}
}