递归算法的基本使用

//求1-n的和
function dosum(n){n
    if(n === 1){
        return n;
    }else{
        return N + dosum(n - 1);
    }
}

// 求n的阶乘
function multiplication(n){
    if(n === 1){
        return 1;
    }
    return n*multiplication(n -1);
}

// 汉诺塔问题
var targetArr = [5,4,3,2,1];
function hanTower(arr,middle,result){
    if(arr.length === 0){
        return 0;
    }else{
        var array = arr.splice(1);
        middle.push(...array);
        result.push(...arr);
        return   2 + hanTower(middle,[], result);    
    }     
}
hanTower(targetArr ,[],[] ); // 10

  

原文地址:https://www.cnblogs.com/dadouF4/p/13739594.html