【发布时间】:2021-11-09 13:41:16
【问题描述】:
我无法让它在 Dyalog APL 中工作
solve←{
n a c b←⍵
n≤0:⍬
solve(n-1)a b c
⎕←'Move disk from' a 'to' c
solve(n-1)b c a
}
solve 4 'A' 'C' 'B'
它从第一个 solve (n-1) a b c 循环,但从不转到第 4 行。
同样的代码在 JavaSCript 中也可以工作:
solve = (n, a, c, b) => {
if (n <= 0) return
solve(n-1, a, b, c)
console.log(`Move disk from ${a} to ${c}`)
solve(n-1, b, c, a)
}
solve(4, 'A', 'C', 'B')
当我打印它显示的输入参数时:
solve←{
n a c b←⍵
⎕←n a c b
n≤0:⍬
solve(n-1)a b c
⎕←'Move disk from' a 'to' c
solve(n-1)b c a
}
4 ACB
3 ABC
2 ACB
1 ABC
0 ACB
有什么想法吗?
【问题讨论】:
标签: recursion towers-of-hanoi apl dyalog