递归,汉诺塔游戏

def hanoi(n,a,b,c):
if n==1:
print(n,a+'->'+c)
else:
hanoi(n-1,a,c,b)
print(n,a+'->'+c)
hanoi(n-1,b,a,c)

hanoi(7,'A','B','C')

1 A->C
2 A->B
1 C->B
3 A->C
1 B->A
2 B->C
1 A->C
4 A->B
1 C->B
2 C->A
1 B->A
3 C->B
1 A->C
2 A->B
1 C->B
5 A->C
1 B->A
2 B->C
1 A->C
3 B->A
1 C->B
2 C->A
1 B->A
4 B->C
1 A->C
2 A->B
1 C->B
3 A->C
1 B->A
2 B->C
1 A->C
6 A->B
1 C->B
2 C->A
1 B->A
3 C->B
1 A->C
2 A->B
1 C->B
4 C->A
1 B->A
2 B->C
1 A->C
3 B->A
1 C->B
2 C->A
1 B->A
5 C->B
1 A->C
2 A->B
1 C->B
3 A->C
1 B->A
2 B->C
1 A->C
4 A->B
1 C->B
2 C->A
1 B->A
3 C->B
1 A->C
2 A->B
1 C->B
7 A->C
1 B->A
2 B->C
1 A->C
3 B->A
1 C->B
2 C->A
1 B->A
4 B->C
1 A->C
2 A->B
1 C->B
3 A->C
1 B->A
2 B->C
1 A->C
5 B->A
1 C->B
2 C->A
1 B->A
3 C->B
1 A->C
2 A->B
1 C->B
4 C->A
1 B->A
2 B->C
1 A->C
3 B->A
1 C->B
2 C->A
1 B->A
6 B->C
1 A->C
2 A->B
1 C->B
3 A->C
1 B->A
2 B->C
1 A->C
4 A->B
1 C->B
2 C->A
1 B->A
3 C->B
1 A->C
2 A->B
1 C->B
5 A->C
1 B->A
2 B->C
1 A->C
3 B->A
1 C->B
2 C->A
1 B->A
4 B->C
1 A->C
2 A->B
1 C->B
3 A->C
1 B->A
2 B->C
1 A->C

Process finished with exit code 0

posted @ 2018-06-13 20:53  苏希腾  阅读(117)  评论(0)    收藏  举报