java汉诺塔递归算法
(规则)有a、b、c三个柱子,a的柱子上由小到大堆着n个圆盘。 一次移动一个圆盘,最终要求所有圆盘从小到大移动到C柱上。 一次大的不能压得小。
//思路: F(N )-C时,可以推出F(N-1 )-B,f (n-2 )-C,F(N-3 )-B,这样,f ) )1)首先要去哪个柱。 那么每确定一个柱,下一个柱的位置也随之确定,如果加上f(1)-C,f ) )-B,请注意,这里所有的开始圆盘都在a这个柱上。 如果圆盘很多,把多个圆盘移动到b,那时他们的目的地应该是a或者c。 请参阅代码:
package hanoT; publicclasshannot (public void exchange (intn,char a,char b,char c ) if ) n==1) system.out.println ) ' the ' n } elele。 system.out.println (the ' n ' from ' a ' to ' c ); exchange(n-1,b,a,c ); } publicstaticvoidmain (string [ ] args ) {int f=3; hannoT t=new hannoT (; t.exchange(f,' a ',' b ',' c ' ); } ` ` ` `