python解决汉诺塔问题

汉诺塔问题描述

有三根顶针,在第一根顶针上放着若干个盘子,且小盘子在大盘子上面,现把这些盘子从第一根顶针上移动到第三根顶针上,且小盘子依旧在大盘子之上。在移动的过程中可以借助第二根顶针,每次只能移动一个盘子,且小盘子要在大盘子上面,如何移动才能使所有盘子从第一根顶针到第三根顶针上。

解决思想:

采用递归迭代的方法,先将第n-1个盘子移动到第二根顶针上,让后将第一根顶针上的盘子移动到第`三根顶针上,通过同样的方法将n-1个盘子移动到第三个盘子上。

汉诺塔问题编程实现

def hanoni(n,x,y,z):
    if(n==1):
        print(x,'--->',z);
    else:
        hanoni(n-1,x,z,y);
        print(x,'--->',z);
        hanoni(n-1,y,x,z);
n = int(input('请输入汉诺塔的层数:'));
hanoni(n,'x','y','z');

你可能感兴趣的:(python学习)