编辑代码

// 递归
// function calStepMethods(step){
//     if(step < 1){
//         return 0
//     }
//     if(step === 1)
//     {
//         return 1
//     }
//     if(step === 2){
//         return 2
//     }

//     return calStepMethods(step - 1) + calStepMethods(step -2) 
// }

function calStepMethods(step){
    if(step < 1){
        return 0
    }
    if(step === 1)
    {
        return 1
    }
    if(step === 2){
        return 2
    }

    let prevPrev = 1;  // 初始步数为1的情况
    let prev = 2;  // 初始步数为2的情况

    for (let i = 3; i <= step; i++) {
        let current = prevPrev + prev;
        prevPrev = prev;
        prev = current;
    } 
    return prev
    
}
console.log(calStepMethods(0))
console.log(calStepMethods(1))
console.log(calStepMethods(2))
console.log(calStepMethods(3))
console.log(calStepMethods(4))
console.log(calStepMethods(5))