**
汉诺塔问题Java
**
### 代码表示
import java.util.Scanner;
/**
* created with IntelliJ IDEA
* Description:
* User:15240
* Date:2022-12-12
* Time:22:09
*/
public class Demo {
/**
*
* @param post1 盘子所在地方
* @param post2 盘子移动的目标地方
*/
public static void move(char post1,char post2) {
System.out.print(post1+" -> "+post2+" ");//移动方法,不换行
}
/**
*
* @param n 一共有的盘子数目
* @param post1 盘子所在地方
* @param post2 可以借助的空地方
* @param post3 移动的目标地方
*/
public static void hanio(int n,char post1,char post2,char post3) {
if(n == 1){
move(post1,post2);//递归结束条件
}else{
hanio(n-1,post1,post3,post2);//将除去最后一个盘子外的其他盘子移动到可以借助的空地方
move(post1, post3);
hanio(n-1,post2, post1, post3);//将空地方的盘子移动到目标地方
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int ret = scan.nextInt();//要移动的汉诺塔层数
hanio(ret,'A','B','C');
System.out.println();
}
}```