欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汉诺塔问题

程序员文章站 2024-03-20 13:08:34
...

汉诺塔问题,
当只有一个圆盘的时候,需要a–>c,当有两个的时候需要a–>b,a---->c,b---->c
使用递归实现

package Test1;

import java.util.Scanner;

/*
 *2019/08/15
 */
public class Hanoi {
    static int index = 0;
    public static void main(String[] args) {

        System.out.println("请输入汉诺塔层数");
        Scanner input = new Scanner(System.in);
        int i = input.nextInt();
        hanio(i,'a','b','c');
        System.out.println("共需要走" + index + "步");

    }
    public static void hanio(int n,char a,char b,char c){

        if(n ==1){
            System.out.println("n = " + n + a +"---->" + c);
            index++;
        }else {
            //n--;
            hanio(n-1,a,c,b);
            System.out.println("n = " + n + a +"---->" + c);
            hanio(n-1,b,a,c);
            index++;
        }

    }
}

相关标签: 算法水题