|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def hanoi(n,x,y,z):
if n==1:
print(x,'->',y)
else:
hanoi(n-1,x,z,y)
hanoi(1,x,y,z)
hanoi(n-1,z,y,x)
n=int(input('请输入层数:'))
hanoi(n,'第一根','第二根','第三根')
input()
请输入层数:3
第一根 -> 第二根
第一根 -> 第三根
第二根 -> 第三根
第一根 -> 第二根
第三根 -> 第一根
第三根 -> 第二根
第一根 -> 第二根
def hanoi(n,x,y,z):
if n==1:
print(x,'->',y)
else:
hanoi(n-1,x,y,z)
hanoi(1,x,z,y)
hanoi(n-1,y,z,x)
n=int(input('请输入层数:'))
hanoi(n,'第一根','第二根','第三根')
input()
请输入层数:3
第一根 -> 第二根
第一根 -> 第三根
第二根 -> 第三根
第一根 -> 第三根
第二根 -> 第三根
第二根 -> 第一根
第三根 -> 第一根
两个程序差不多
为什么第二个答案错了呢
求大神解答
感激不尽
函数内部变量的含义必须保持一致
注释如下:
- def hanoi(n,x,y,z):
- #n为当前操作层数,x为起点,y为终点,z为缓冲区/中介
- if n==1:
- print(x,'->',y) #x起点,y终点
- else:
- hanoi(n-1,x,z,y) #x起点,z终点,y中介
- hanoi(1,x,y,z) #虽然只有一层,不需要中介,但是z还是要加上
- hanoi(n-1,z,y,x) #z起点,y终点,x中介
- n=int(input('请输入层数:'))
- hanoi(n,'第一根','第二根','第三根')
- input()
复制代码
结果如下:
- >>> hanoi(3,'第一根','第二根','第三根')
- 第一根 -> 第二根
- 第一根 -> 第三根
- 第二根 -> 第三根
- 第一根 -> 第二根
- 第三根 -> 第一根
- 第三根 -> 第二根
- 第一根 -> 第二根
复制代码
|
|