每日一小时-第十四天
Topic source搜了下汉诺塔才知道这个是啥..茅塞顿开...没童年
主要是三个柱与三个盘子是由大到小组成
游戏规则:
从A柱开始把1,2,3盘子个个转移, 最终三个都到C柱
始终要保持大盘在最下, 小盘在最上
def move(n, a, b, c):
if n == 1:
print('将',n,'从',a,'转',c)
else:
move(n-1,a,c,b)
print('将',n,'从',a,'转',c)
move(n-1,b,a,c)
- 1
Mx
def move(n, a, b, c):
if n == 1:
print(a, '-->', c)
else:
move(n-1,a,c,b)
print(a, '-->', c)
move(n-1,b,a,c)
大概逻辑搞出来还是看没 会不会我弄错什么了 晕
#(3)
# ABC (A --> C) (abc) 执行if print
# ABC-ACB (A --> B) (abc-acb) 后执行move(n-1,a,c,b) + print
# ACB-CAB (C --> B) (abc-bac) 最后 move(n-1,b,a,c) + if print
#(2)
# CAB-ABC (A --> C) (bac-acb) 重新定义abc成bac
# ABC-BCA (B --> A) (bac-acb) 后执行move(n-1,a,c,b) +if print
#(1)
# BCA-BAC (B --> C) (abc-acb) 后执行move(n-1,a,c,b)
# BAC-ABC (A --> C) (abc-bac) 最后 move(n-1,b,a,c) + if print