|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def hanoi(n,x,y,z):
if n == 1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y上
print(x,'-->',z)#将最下面的盘子从x移动到z上
hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
n = int(input('请输入汉诺塔的层数:'))
hanoi(n,'x','y','z')
如果想要在答案之前打印出共需要多少步骤,需要怎么修改代码?
本帖最后由 幻千城12 于 2019-1-14 16:28 编辑
是想要这样吗
- import pandas as pd
- step = 0
- result = []
- def hanoi(n,x,y,z):
- global step, result
- step += 1
- if n == 1:
- result.append(x+'-->'+z)
- else:
- hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y上
- result.append(x+'-->'+z)#将最下面的盘子从x移动到z上
- hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
- n = int(input('请输入汉诺塔的层数:'))
- hanoi(n,'x','y','z')
- print('一共需要%d个步骤'%step)
- print(pd.Series(result, index=range(1, step+1)))
复制代码
|
|