观察上图发现,从N=2开始图形都按一定的规律步骤进行位置移动,这个观点是否认同?
那再看N=2时,为了方便大家理解,将两个板定义为板1(小),板2(大),最上的那个板1是不是借助C到达B?然后最大的板2直接移动到C,再将B上的板1借助A移动到C呢?是否认同?再来看,N=3,将前两块板看成一块,是不是先将看的整体两块板,借助C移动到A,再将A剩下的大板移动到C最后再将B上看成整体的那两块板,借助A移动到C上,是不是完成了移动?现在N=3和N=2的操作步骤是不是一样?认同不认同?
好 !!!!!!!!!!
现在注意:有人会问为什么N=3的时候可以看成整体移动?注意听,因为我们递归的大问题是将一条柱子上的所有木板通过一条柱子移动到另一条柱子上,(其实就是借助一条柱子移动到另一条柱子上的实现)。而我们在N=2的时候是否实现了两块板借助一条柱子移动到另一条柱子上?那N=3时,我们在N=2时已经直到可以实现从A到C,就已经知道2块板可以借助一条柱子移动到另一条柱子上 , 借助运用了N=2的理论【为什么会那么想因为N=3包含了N=2】将开始的两块板(看成整体)先借助C移动到B上,然后再将A上的大板移动到C,最后又将B上的一大一小的两块板借助A移动到C上,因为我们再N=2时以及实现了两个大小板借助一条柱子的移动到另一条,N=3时包含了N=2所以是可以直接运用的。
同理N=4时,可以直接移动前三个借助C移动到B,步骤是一样的
学习递归不要想它的过程,上述问题困扰了我好久,为什么可以整体移动,为什么它可以直接完成,是因为它当前不步骤包含了上一步骤,上一步骤包含了上上步骤直到当N=1时
有问题可以直接私聊我,见到就一起交流
为什么 可以用递归?
大问题->相同类型的子问题 大问题就将一条柱子上的板借助一条柱子到另一条柱子上
子问题-->相同类型的子问题 子问题中包含了更小的相同的子问题
如何编写递归代码?