def move(n,a,b,c): if n==1: print(a+'-->'+c) if n>1: print(a+'-->'+c) print(a+'-->'+b) print(c+'-->'+b) print(a+'-->'+c) print(b+'-->'+a) move(n-1,a,b,c) a='A' b='B' c='C' move(3,a,b,c)
我这个有一个疏漏,没有讨论为两个的特殊情况。汉诺塔就只有三种特殊情况,n为1,2,大于等于3的三种情况
Sign in to make a reply
那年今日34
def move(n,a,b,c): if n==1: print(a+'-->'+c) if n>1: print(a+'-->'+c) print(a+'-->'+b) print(c+'-->'+b) print(a+'-->'+c) print(b+'-->'+a) move(n-1,a,b,c) a='A' b='B' c='C' move(3,a,b,c)