javascript解决汉诺塔问题

递归的课后作业:
解决汉诺塔问题有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,设移动次数为H(n)
`

function a1(){
    var num = null;
    num = 1;
    return num;
}
function a2(){
    var num = null;
    num = a1()+a1()*2;//3
    return num;
}
function a3(){//移动了2阶,1阶,2阶
    var num = null;
    num = a1() + a2()*2;//7
    return num;
}
function a4(){//移动了3阶,1阶,3阶
    var num = null;
    num = a1() + a3()*2;//15
    return num;
}
function hannuota_n(n){
    if(n === 1){
        return 1;
    }else{
        return 1+hannuota_n(n-1)*2
    }
}
console.log(hannuota_n(64));`

你可能感兴趣的:(javascript解决汉诺塔问题)