Discuss / Python / 交作业

交作业

Topic source

def move(n,a,b,c): if n<1: print('输入错误,n为大于等于1的整数') elif n==1: print(a,' --> ',c) else: move(n-1,a,c,b) move(1,a,b,c) move(n-1,b,a,c)

可以先从n=1开始反推,如果n=1,直接输出,A-->C.此时,a为A,b为B,c为C。 如果n=2,则先用递归把A上的n-1个盘子移到B上,此时对于这n-1个盘子来说,A柱子还是传给参数a,B柱子传给参数c,C柱子传给参数b。然后将A的最后一个盘子移到C,最后用递归将n-1个B的盘子移到C。 后面的依次类推


  • 1

Reply