|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
还是汉诺塔,那天我以为我懂了,结果昨天睡不着想了一下,发现自己还是不懂。思路我知道,就是代码里面的实参和形参给我整懵了,求大佬救命呀。
def hanota(n,x,y,z):
if n == 1:
print(x,'--->',z)
else:
hanota(n-1,x,z,y)#将前n-1个盘子从x移到y上
print(x,'-->',z)#将底下的最后一个盘子从x移到z
hanota(n-1,y,x,z)#将y的n-1个盘子移到z上
hanota(3,"x","y","z")
为什么传入的是"x","y","z"
打印却没带""
def hanol(n,a,b,c): # 这里的 a b c 就是形参,需要人为赋值的参数,可以理解为一个变量
if n == 1:
print(a,'->',c)
else:
hanol(n-1,a,c,b)
print(a,'-->',c)
hanol(n-1,b,a,c)
n = int(input('请输入汉诺塔的层数:'))
def hanol(n,a,b,c):
if n == 1:
print(a,'->',c)
else:
hanol(n-1,a,c,b)
print(a,'-->',c)
hanol(n-1,b,a,c)
n = int(input('请输入汉诺塔的层数:'))
hanol(n,'x','y','z') # 这里的 x y z 就是实参,可以理解成有实际意义的数值 或者 字符串之类的
# 之所以传入的是 'x' 'y' 'z' 但是最终打印的时候没带 ' ' 引号,是因为打印出来的是一个数值,而不是字符串。
# 如果想要连引号也打印出来的话可以如下
hanol(n,'"x"','"y"','"z"')# 在单引号中在加个双引号,或者在双引号内再加个单引号都行
|
|