汉诺塔移动
<code
class
=
"hljs"
python=
""
>def hanoi(n,x,y,z):
if
n==
1
:
print(x,
'-->'
,z)
else
:
hanoi(n-
1
,x,z,y)#将前n-
1
个盘子从x移动到y上
hanoi(
1
,x,y,z)#将最底下的最后一个盘子从x移动到z上
hanoi(n-
1
,y,x,z)#将y上的n-
1
个盘子移动到z上
n=
int
(input(
'请输入汉诺塔的层数:'
))
hanoi(n,
'x'
,
'y'
,
'z'
)
</code>
count = 1 2 3 def test(num, src, dst, rest): 4 global count 5 6 if num < 1: 7 print False 8 elif num == 1: 9 print "%d:\t%s -> %s" % (count, src, dst) 10 count += 1 11 elif num > 1: 12 test(num - 1, src, rest, dst) 13 test(1, src, dst, rest) 14 test(num - 1, rest, dst, src) 15 16 17 test(3, 'A', 'C', 'B')