双色Hanoi塔问题-递归

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双色Hanoi塔问题-递归相关的知识,希望对你有一定的参考价值。

双色Hanoi塔问题-递归


import java.util.Scanner;

public class Hanoi {
    public static void hanoi(int n, String from, String to, String helper){
        if(n == 1){ //递归出口,就1个圆盘
            System.out.println(n + " " + from  + " " + to);
            return ;
        }
        hanoi(n-1, from, helper, to) ; //将n-1个圆盘从A移动到C,B为辅助
        System.out.println(n + " " + from  + " " + to); //将第n个圆盘从A移动到B
        hanoi(n-1, helper, to, from) ; //将n-1个圆盘从C移动到B,A为辅助
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in) ;
        int n = input.nextInt() ;
        hanoi(n, "A", "B", "C") ;
    }
}

以上是关于双色Hanoi塔问题-递归的主要内容,如果未能解决你的问题,请参考以下文章

递归--汉诺塔问题 (Hanoi)

汉诺塔(Tower of Hanoi) 递归代码实现 c语言(顺序栈实现)

Hanoi塔问题(递归)

汉诺塔递归函数hanoi

汉诺塔(Tower of Hanoi)问题的求解——利用栈与递归

汉诺塔(Hanoi)图解递归算法