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');
网友评论