public class main {
/*汉诺塔实验*/
public static void main(String[] args) {
/*整体思路:递归好处体现出来 当有着要不断进行拆分判断过程时使用哦个
当n=1时此时说明时最上层的一个盘子也是最大的一个盘子所以直接将盘子从A移动到目标柱子B
而且当第一次n=1时移动的是n个盘子中最大的一个
若n !=1 此时要将n-1个盘子从当前所在柱子B 移动到空柱子A 借助空柱子A 移动盘子到C
* */
int count = 0;
char a = 'A';/*柱子A*/
char b = 'B';/*柱子B*/
char c = 'C';/*柱子C*/
hanhuota(3, a, b, c);
}
/*盘子所在柱子 借助柱子 目标柱子*/
public static void hanhuota(int n, char A, char B, char C) {
/*如果n == 1 则直接将这个盘子移到 C*/
if (n == 1) {
System.out.println
("将盘子:" + n + " 从盘子所在柱子" + A + " 借助柱子:" + B + " 移到目标柱子:" + C);
} else {
hanhuota(n - 1, A, C, B);
System.out.println("将盘子:" + n + " 从盘子所在柱子" + A + " 借助柱子:" + B + " 移到目标柱子:" + C);
hanhuota(n - 1, B, A, C);
}
}
}
汉诺塔实验理解代码
最新推荐文章于 2024-07-13 13:36:16 发布