05.JavaScript递归函数

2019-08-07  本文已影响0人  讲武德的年轻人

JavaScript最典型的递归函数

var f = function fact(x){
    if(x <= 1){
        return 1;
    }else{
        return x * fact(x-1);
    }
};

如果不想在上面加fact,怎么在函数中实现自己调用自己呢?

var f = function(x){
    if(x <= 1){
        return 1;
    }else{
        return x * arguments.callee(x-1);
    }
};

如上,调用的时候用函数的特有方法arguments.callee,该用法不是很推荐使用,目前阶段了解就好!

用递归函数实现汉诺塔###

function doHanoi(n, src, dest, hpr){// src: 源  dest: 目的    hpr:辅助
    if(n > 1){
        doHanoi(n-1, src, hpr, dest);
        console.log('Move No.' + n + ' dish from ' + src + ' to ' + dest);
        doHanoi(n-1, hpr, dest, src);
    }else if(n == 1){
        console.log('Move No.' + n + ' dish from ' + src + ' to ' + dest);
    }else{
        console.log('Error');
    }
}

doHanoi(4, 'A', 'B', 'C');
上一篇 下一篇

猜你喜欢

热点阅读