1 count = 0 2 def hanoi(n,src,dst,mid):#n表示圆盘个数,src表示源柱子,dst表示目的柱子,mid表示过渡柱子 3 global count #定义的全局变量,在函数内部使用global保留字 4 if n==1: 5 print("{}:{}->{}".format(1,src,dst)) 6 count +=1 7 else: #将n-1个圆盘放在mid上,将最后一个圆盘放在dst上 8 hanoi(n-1,src,mid,dst) #调用两次 9 print("{}:{}->{}".format(n,src,dst)) 10 count +=1 11 hanoi(n-1,mid,dst,src) 12 hanoi(3,"A","C","B") 13 print(count)
输出为:
1:A->C
2:A->B
1:C->B
3:A->C
1:B->A
2:B->C
1:A->C
7