问题不再多做赘述:
分析:
1)以动态规划的思维分析:
将N个盘子从左移到右
①首先考虑怎样将第N个盘子移到右边去,
②分为三步,1.将上面的n-1移到中间,2.将N移到右边,3.将n-1移到右边。如何以动态规划的思维将这个推导出这最后一步前面的的移动方式。
③此时n已经移动完成,那么我们去移动第n-1个,同样是上面的三步,只是现在的中间柱子变为
此时考虑如何将上面的n-1移动,1.将n-2移到中间,(此时n-1原在柱子已经从左变为中,而我们目标柱为右,所以中转柱为 左柱(萨斯给!!)),2.将第n-1从“左柱”移动到右柱,3.将n-2从中柱移动到右柱。
由上面的递归得出所有的移动状态。
代码实现:
public void main(int n){
if(