Discuss / Python / 2022/7/23

2022/7/23

Topic source

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个为一个盘 也相当于两个‘盘’。


  • 1

Reply