汉诺塔这个任务不会做呢,答案也看不懂求解答
汉诺塔这个任务不会做呢,答案也看不懂求解答
汉诺塔这个任务不会做呢,答案也看不懂求解答
2018-03-19
建议你先下载一个坦诺塔游戏体验一下就明白这个逻辑了。如果有三个柱子,a柱子,b柱子,c柱子,a柱子上挂着n个盘子。盘子从上到下是由小到大罗列着的,且小的必须在大的上面。
def move(n, a, b, c) #def 定义该函数move
if n == 1 #如果柱子上只有一个盘子
print(a,'-->',c) #直接输出 a --> c即可,只有一个盘子,直接从a移动到b即可。这也是最终目的,就是把a柱子上的盘子全部移动到c柱子上。
move(n-1,a, c, b)#共有n个盘子,先将n-1个盘子从a柱子移动到b柱子上。
move(1, a, b, c) #将最后一个柱子从a柱子移动到c柱子上。
move(n-1,b, a, c) #再将刚才移动到b柱子上的n-1个盘子移动到c柱子上。
可以自己代入下2个或者3个自行整理下逻辑就好了。
举报