a,b,c分别代表什么?为什么递归时要换参数的顺序
def move(n, a, b, c):
if n == 1:
print a,'-->',c
return
move(n-1,a,c,b)
print a,'-->',c
move(n-1,b,a,c)
move(4, 'A', 'B', 'C')
def move(n, a, b, c):
if n == 1:
print a,'-->',c
return
move(n-1,a,c,b)
print a,'-->',c
move(n-1,b,a,c)
move(4, 'A', 'B', 'C')
2017-07-07
#a,b,c代表三个柱子,这个是典型的汉诺塔问题,递归的思想是一层一层的反复调用同一个函数,然后形参n会发生变化,n满足一定条件时结束调用返回函数,然后一层一层的返回
#-*- coding:utf-8 -*-
# move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去
def move(n, a, b, c):
# 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归
if n == 1:
print (a, '-->', c)
return
# 表示的是将n-1的盘子从a柱子上面移到b柱子上面去
move(n-1, a, c, b)
# 输出最下面个盘子移从a移到c的路径
print (a, '-->', c
# 将b柱子上面的n-1个盘子移动到c柱子上面
move(n-1, b, a, c)
move(4, 'A', 'B', 'C')
举报