Python汉诺塔问题例题

 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

猜你喜欢

转载自www.cnblogs.com/double-star/p/12659140.html
今日推荐