Python汉诺塔问题
move=0 def han (n,one,two,mid): global move if n==1: print("{}号盘子:从{}到{}".format(1,one,two)) move+=1 else: han(n-1,one,mid,two) print("{}号盘子:从{}到{}".format(n,one,two)) move+=1 han(n-1,mid,two,one) N=eval(input()) han(N,"A","B","M") print("移动次数:",end='') print(move)

动画演示
import turtle as t def up (x,y): t.penup() t.goto(x,y) t.pendown() def line (a,b,l,c): up(a,b) t.pencolor(c) t.fd(l) t.setup(500,200) t.speed(0) t.penup() t.goto(250,-50) t.pendown() t.colormode(255) t.color("brown","brown") t.begin_fill() t.goto(250,-100) t.goto(-250,-100) t.goto(-250,-50) t.end_fill() t.hideturtle() t.pensize(20) line(-155,-40,60,"blue") line(-145,-20,40,"pink") line(-135,0,20,"yellow") t.delay(350) line(-135,0,20,"white") line(115,-40,20,"yellow") t.delay(350) line(-145,-20,40,"white") line(-20,-40,40,"pink") t.delay(350) line(115,-40,20,"white") line(-10,-20,20,"yellow") t.delay(350) line(-155,-40,60,"white") line(95,-40,60,"blue") t.delay(350) line(-10,-20,20,"white") line(-135,-40,20,"yellow") t.delay(350) line(-20,-40,40,"white") line(105,-20,40,"pink") t.delay(350) line(-135,-40,20,"white") line(115,0,20,"yellow")
posted on 2020-03-31 11:58 zhangsijie 阅读(210) 评论(0) 收藏 举报
浙公网安备 33010602011771号