python编程练习---汉诺塔的实现
汉诺塔游戏

由中间作为中转,将左侧圆盘全部移动到右侧,并且保留从上到下为从小到大的排列顺序
解题思路:
对于一个n层的汉诺塔,如果完成转移工作,首先需要将前n-1层移动到中间位置,再将最底层移动到右侧,之后将中间n-1层移动到右侧,完成全部的移动
整个步骤:
左侧n-1层---》中间,右侧中转
左侧第n层---》右侧
中间n-1层---》右侧,左侧中转
那对于n-1的移动,需要借助递归来完成,整个执行过程如下:
# -*- coding: utf-8 -*-
__author__ = 'felix'
def move(n, A='左侧', B='中间', C='右侧'):
if n == 1: #仅有一层
print(A, "-->", C) #A直接移动到C
return
else:
move(n-1, A, C, B) #n-1,C为中转,A---B
move(1, A, B, C) #第n,B为中转,A---C
move(n-1, B, A, C) #n-1,A为中转,B---C
不知则问,不会则学

浙公网安备 33010602011771号