
汉诺塔是经典的递归方法的实现案例 代码片。
import java.util.Scanner;
public class Hanoi {
public void hanoi(int n,char a,char b,char c) {
if (n == 1)//若只有一个圆盘,则直接从a移到b
System.out.println(a+"->"+c);
else {//若超过一个圆盘
hanoi(n - 1, a, c, b);//先实现将n-1个圆盘从a柱借助c柱搬到b柱
hanoi(1, a, b, c);//剩最后一个圆盘时,直接将a柱上的圆盘搬到c柱
hanoi(n-1,b,a,c);//最后再将b柱上的圆盘借助a柱搬到c柱
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入圆盘数量:");
int n=scanner.nextInt();//输入圆盘数量
Hanoi han=new Hanoi();
han.hanoi(n,'A','B','C');
}
}
以下是运行结果: