最近在学习python,着手解决以下汉诺塔的问题
</pre><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>在用迭代解决汉诺塔的时候,一定要清楚,把大象装进冰箱,总共分几步? 打开冰箱门,装进大象,关闭冰箱门,因此,不要多想。汉诺塔的过程也一样,要从A移动一个饼到C,就把这个饼上面的饼先移动到B,再把他本身移动到A即可,然后把剩余的用同样的方法移动到A。<pre name="code" class="python">def move(f,to):
print(f,'->',to)
def hanoi(n,src,tmp,dst):#将n个盘子从src搬到dst
if n == 1: #只有一个盘子的情况
move(src,dst)
else: #有一个以上盘子的情况
hanoi(n-1,src,dst,tmp) #将上方的n-1个盘子从src搬到tmp
move(src,dst) #将第n个盘子从src轻松愉快地移动到dst
hanoi(n-1,tmp,src,dst) #擦屁股,将tmp上的n-1个盘子搬到dst上
hanoi(3,'A','B','C')
</pre><pre name="