|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 wskmf 于 2017-1-7 19:31 编辑
- 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')
复制代码
我想问问 else中 print 为何只有一行它的工作原理
追加- def shuju1 (n,x,y,z):
- if n == 1:
- print (x, ' -->' ,z)
- # 这里 -->后面没有空格
- else:
- shuju1 (n-1,x,z,y)
-
- print (x, ' --> ' ,z)
- #这里 -->后面有空格
- shuju1 (n-1,y,x,z)
-
- n = int (input('输入层数'))
- shuju1 (n,'x','y','z')
复制代码
这是我自己又写了一段代码
得到答案 如下:
输入层数3
x --> z
x --> y
z --> y
x --> z
y --> x
y --> z
x --> z
他是会返回 if 下的 print 的
这是个神马意思 不是应该 n != 1 时 循环 else 下代码吗(或者循环整个def下的整个函数列表,) |
|