JavaScript中的递归实践 基础算法与河内塔解法
递归是解决许多编程问题的强大工具。以下是两个基本的递归示例。
因子
这是一个经典的数学问题,计算阶乘:
阶乘(n) = n * 阶乘(n - 1)
阶乘(1) = 1
例如,factorial(4) = 4 * 3 * 2 * 1 = 24
代码实现:
function factorial(n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
河内塔之谜
河内塔是一个经典的递归问题,目标是将所有盘片从起始柱移动到目标柱,遵循规则:
-
一次只能移动一个盘。
-
大盘不能放在小盘上。
代码实现:
function hanoi(disc, src, aux, dst) {
if (disc > 0) {
hanoi(disc - 1, src, dst, aux);
console.log('Move disc ' + disc + ' from ' + src + ' to ' + dst);
hanoi(disc - 1, aux, src, dst);
}
}
用户评论