diff --git a/汉诺塔.txt b/汉诺塔.txt new file mode 100644 index 0000000..c53d77a --- /dev/null +++ b/汉诺塔.txt @@ -0,0 +1,27 @@ +import java.util.Scanner; +public class hanoi { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + System.out.print("请输入一个数n:"); + int numDisks= scanner.nextInt(); + char source = 'A'; // 源柱子 + char auxiliary = 'B'; // 辅助柱子 + char target = 'C'; // 目标柱子 + solveHanoi(numDisks, source, auxiliary, target); + } + + public static void solveHanoi(int numDisks, char source, char auxiliary, char target) { + if (numDisks == 1) { + System.out.println("移动盘子 1 从柱子 " + source + " 到柱子 " + target); + } else { + // 将numDisks-1个盘子从源柱子移动到辅助柱子,借助目标柱子 + solveHanoi(numDisks - 1, source, target, auxiliary); + + // 移动最底下的一个盘子到目标柱子 + System.out.println("移动盘子 " + numDisks + " 从柱子 " + source + " 到柱子 " + target); + + // 将numDisks-1个盘子从辅助柱子移动到目标柱子,借助源柱子 + solveHanoi(numDisks - 1, auxiliary, source, target); + } + } +} \ No newline at end of file