Discuss / Python / 递归函数 作业 2016.07.02

递归函数 作业 2016.07.02

Topic source
#汉诺塔问题
step=1
def move(n,a,b,c):
    global step
    if n==1:
        print('第%s步,将%s塔最上方的盘子移动到%s塔上'%(step,a,c))
        step=step+1
    else:
        move(n-1,a,c,b)#将初始塔a上n-1个盘子移动到借用塔b上
        move(1,a,b,c)#将初始塔a上的最后一个盘子移动到最终塔c上
        move(n-1,b,a,c)#将借用塔b上的n-1个盘子移动到最终塔c上

num=input('此程序能给出汉诺塔问题的解决方案,请输入要移动的盘子的总数:')
num=int(num)
print('移动%s个盘子共需要%s步,具体步骤如下:'%(num,2**num-1))
move(num,'A','B','C')

  • 1

Reply