def mTower(h,fp,wp,tp): #h:盘面的高度,fp:开始柱,wp:中间柱,tp:目标柱
if h>=1:
mTower(h-1,fp,tp,wp) #h-1:减小规模,从fp-->wp,中间经过tp
mDisk(h,fp,tp) #将最大的Disk,从fp直接挪到tp
mTower(h-1,wp,fp,tp) #第一步已经将整个移到wp里,最后一步将wp-->tp,经过fp
def count(h): #-----求完成需要的步数
if h==0:
return 0
else:
return 2*count(h-1)+1
print(count(3))
def mDisk(disk,fp,tp):
print(f"{fp}->{tp}")
mTower(3,'A','B','C')
Python汉诺塔问题
于 2023-12-09 21:19:39 首次发布