java 、递归求解汉诺塔问题

汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。 大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。 并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。 问应该如何操作?

import java.util.Scanner;
public class HanorTower{
    public static void main(String[] args){
      Scanner sc=new Scanner(System.in);
      int n=sc.nextInt();
       ht(n,'a','b','c');
        sc.close();
    }
    public static void ht(int n,char a,char b,char c){
        if(n==1){
            System.out.println(a+"->"+c);
        }else{
            ht(n-1,a,c,b);
            System.out.println(a+"->"+c);
            ht(n-1,b,a,c);
        }
    }
}
发布了87 篇原创文章 · 获赞 2 · 访问量 721

猜你喜欢

转载自blog.csdn.net/Nabandon/article/details/103744868