您的位置:首页 > 编程语言 > Python开发

python实现汉诺塔,输出每次移动后三个底座上的盘子分布情况

2019-03-07 19:20 120 查看
版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/wssmiss/article/details/88317664

汉诺塔

(可输出每次移动后三个底座上的盘子分布情况)

#编写函数,接受一个表示盘子数量的参数和分别表示源,目标,临时底座的参数,
#然后输出详细移动步骤和每次移动后三个底座上的盘子分布情况

#类实现

class Pillar:
def __init__(self,str,num):
self.key=str
self.value=num

def Hanoi(num,a,b,c):
if num==1:
a.value-=1
c.value+=1
print(a.key,"->",c.key)
print("盘子个数 A:{},B:{},C:{}".format(a.value,b.value,c.value))
else:
Hanoi(num-1,a,c,b)
Hanoi(1,a,b,c)
Hanoi(num-1,b,a,c)
def main():
num=eval(input("A上的盘子有:"))
a=Pillar('A',num)
b=Pillar('B',0)
c=Pillar('C',0)
Hanoi(num,a,b,c)

main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐