|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下边是汉诺塔盘子移动的流程,但是想同时打印出一个数值,总共移动了 xxx 次盘子,该怎么做呢?
###################################
def ta(n,x,y,z):#x,y,z是字符串,n是整数
if n==1:
print (x,"---->",z)
else:
ta(n-1,x,z,y)
print (x,"---->",z)
ta(n-1,y,x,z)
# print(type(n)) #n是int
# print(type(x))#x是str
i=int(input("请输入盘子数量:"))
ta(i,"a","b","c")
###################################
现在的打印结果:
请输入盘子数量:3
a ----> c
a ----> b
c ----> b
a ----> c
b ----> a
b ----> c
a ----> c
###################################
考虑可以设置一个变量,m ,让它随着盘子的移动而增加,但m放在哪里啊?好像函数里边,外边都不合适。
- m = 0
- def ta(n,x,y,z):#x,y,z是字符串,n是整数
- global m
- if n==1:
- m += 1
- print (x,"---->",z)
- else:
- ta(n-1,x,z,y)
- m += 1
- print (x,"---->",z)
- ta(n-1,y,x,z)
- ta(3,"a","b","c")
- print(m)
复制代码
|
|