package com.hunsun;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Hanoi {
public static void main(String args[]) throws IOException {
System.out.print("请输入盘数:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
Hanoi hanoi = new Hanoi();
hanoi.move(n, 'A', 'B', 'C');
}
public void move(int n, char a, char b, char c) {
if(n == 1)
System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);
else {
move(n - 1, a, c, b);//把n-1个盘子从a搬到b
System.out.println("盘 " + n + " 由 " + a + " 移至 " + c);//把第n个盘子从a搬到c
move(n - 1, b, a, c);//把n-1个盘子从b搬到c
//所有过程抽象成以上三步,经过迭代之后所有盘子都搬到了c
}
}
}
【经典算法】汉诺塔
最新推荐文章于 2022-01-13 16:45:36 发布