当前仔陵只有一层的时候,直接把x放到慧戚z上结束
当大于1层的时候,先把x和z放到y上,然后继续递归
把y放到戚银x上,然后放到z上,结束处理
def my_print(args):
print args
def move(n, a, b, c):
my_print ((a, '-->', c)) if n==1 else (move(n-1,a,c,b) or move(1,a,b,c) or move(n-1,b,a,c))
注释:汉诺塔模型输入move (n, 'a', 'b', 'c')
例如n=3
move(2,a,c,b)自循环
move(1,a,b,c)
move(2,b,a,c) 自循环
循环完毕,输出
你猛败搜这段代码也是枝历类似自循环枯做
#-*- coding:utf-8 -*-count = 0
def hano():
def hanoi(n,x,y,z):
global count
count += 1
if n == 1:
print('Monving %d' % n, 'from ',x,'to',z)
瞎悔 else:
hanoi(n-1,x,z,y)
print('Monving %d' % n, 'from ',x,'to',z)
贺神闭 hanoi(n-1,y,x,z)
return hanoi
n = int(input("请输入汉诺塔的层数 :禅裂"))
hano()(n,'source','helper','target')
print("The total number of steps required is: ",str(count))
-----------分-割-线-是-我----------------
复制分割线以上的代码,保存为hannoi.py,在python 3 下运行,得到结果如题所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)