递归,汉诺塔游戏

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

你可能感兴趣的:(递归,汉诺塔游戏)