def move(n, a, b, c):
if n == 1:
print(a, '-->', c)
return
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
move(3,'A','B','C')
刚开始有点儿懵打算直接看答案 后来忍住了又想一想没想到试着想出来了 so...不要轻易看答案 锻炼一下自己。
整个题就是抽象再抽象 先想两个盘的汉诺塔怎么移动:a->b a->c b->c ; 然后将n个的上面n-1个看作一个大盘 第n个为一个盘 也相当于两个‘盘’。
Sign in to make a reply
★&Lucky☆繁星
def move(n, a, b, c):
if n == 1:
print(a, '-->', c)
return
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
move(3,'A','B','C')
刚开始有点儿懵打算直接看答案 后来忍住了又想一想没想到试着想出来了 so...不要轻易看答案 锻炼一下自己。
整个题就是抽象再抽象 先想两个盘的汉诺塔怎么移动:a->b a->c b->c ; 然后将n个的上面n-1个看作一个大盘 第n个为一个盘 也相当于两个‘盘’。