n多个台阶,每次走一步到两步,有多少种情况
先看代码
function fn(n){
if(n===1){
return 1;
}else if(n===2){
return 2;
}else{
return fn(n-1)+fn(n-2);
}
}
这个方法首先假设台阶最低是一节台阶。进入函数先进行判断若是只有一节则只有一种方法,直接返回1。
如果是2它有两种可能性,走一步或是走两步直接返回2
如果大于2则有两种可能性走一步或是走两步返回fn(n-1)与fn(n-2)这两种可能的和。
上面的理解之后,可以把代码再稍微优化一下。
function fn(n){
if(n===1 || n===2){
return n;
}else{
return fn(n-1)+fn(n-2);
}
}