1 Star 0 Fork 0

fanyangchu/PythonCode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
tower_of_hanoi.py 1.33 KB
一键复制 编辑 原始数据 按行查看 历史
'''Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objective of the puzzle is to move
the entire stack to another rod, obeying the following simple rules:
1) Only one disk can be moved at a time.
2) Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack i.e. a disk
can only be moved if it is the uppermost disk on a stack.
3) No disk may be placed on top of a smaller disk.
APPROACH:
Take an example for 2 disks :
Let rod 1 = 'SOURCE', rod 2 = 'TEMPORARY', rod 3 = 'DESTINATION'.
Step 1 : Shift first disk from 'SOURCE' to 'TEMPORARY'.
Step 2 : Shift second disk from 'SOURCE' to 'DESTINATION'.
Step 3 : Shift first disk from 'TEMPORARY' to 'DESTINATION'.
The pattern here is :
Shift 'n-1' disks from 'SOURCE' to 'TEMPORARY'.
Shift last disk from 'SOURCE' to 'DESTINATION'.
Shift 'n-1' disks from 'TEMPORARY' to 'DESTINATION'.
'''
def toh(n,s,t,d):
if n==1:
print(s,'-->',d)
return
toh(n-1,s,d,t)
print(s,'-->',d)
toh(n-1,t,s,d)
if __name__=="__main__":
while 1:
n = int(input('''Enter number of disks:'''))
if n<0:
print("Try Again with a valid input")
continue
elif n==0:
break
toh(n,'Source','Temporary','Destination')
print('ENTER 0 TO EXIT')
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fanych/pythoncode.git
git@gitee.com:fanych/pythoncode.git
fanych
pythoncode
PythonCode
master

搜索帮助