Discuss / Python / 作业

作业

Topic source

lostanother

#1 Created at ... [Delete] [Delete and Lock User]
def move(n, a, b, c):
    if n == 1:
        print(a,'->',c)
    else:
        move(n-1,a,c,b)
        print(a,'->',c)
        move(n-1,b,a,c)
move(3, 'A', 'B', 'C')

几年前自学c语言的时候就是被这道题卡住没能做出来最终自暴自弃了。。。。这次看了楼上的答案终于理解了。把大象放进冰箱的比喻太精彩了让人很容易理解。也就是只考虑最后第n个的情况,上面n-1的盘子移动方式都用函数表示出来。最后函数的情况就是 当n为1时,将盘子直接从a移动到c; 其他情况时:1,上面n-1个盘子先移到临时柱b 2,将第n个盘子移动到目标柱c 3,将临时柱的n-1个盘子移目标柱 这就是函数编写的思路。


  • 1

Reply