递归思想
package adac;
public class HanoitowerDemo {
public static void main(String[] args) {
//汉诺塔 我们使用分支算法
int num = 3;
char c1 = 'A';
char c2 = 'B';
char c3 = 'C';
move(num, c1, c2, c3);
}
private static void move(int num, char c1, char c2, char c3) {
if (num == 1) {
System.out.println("第一个盘从" + c1 + "到" + c3);
} else {
//如果是num >=2的情况,我们可以把最下边的看成是一个,其他看成是另一个。这个我们就可以递归了
//我们会把 a最下面的其他都放在b上,然后最下边的放在c上,然后 然后把b上测移动到c上。
move(num-1,c1,c3,c2);//我们从1,到2,但是中途要借助3
//最下边的1到3
System.out.println("第"+num+"个盘从"+c1+"-->"+c3);
//把2 的所有移动到3
move(num-1,c2,c1,c3);
}
}
}