gpt4 book ai didi

python - 细数汉诺塔的 Action

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:01 24 4
gpt4 key购买 nike

我在数汉诺塔的步数

In [4]: %paste      
count = 0
def hanoi(n, a, b, c):
global count
if n == 1:
count += 1
else:
hanoi(n - 1, a, c, b)
hanoi(1, a, b, c)
hanoi(n - 1, b, a, c)


hanoi(10, "A", "B", "C")
## -- End pasted text --

In [5]: print(count)
1023

上面的解决方案使用了global关键字,
不引入global怎么搞定?

最佳答案

通过一些重构使函数使用一个通用的 count 变量递归:

def hanoi(n, a, b, c):
count = 0
if n == 1:
count += 1
else:
count += hanoi(n - 1, a, c, b)
count += hanoi(1, a, b, c)
count += hanoi(n - 1, b, a, c)
return count

输出

>>> hanoi(10, "A", "B", "C")
1023

关于python - 细数汉诺塔的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59139307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com