双色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塔问题-递归的主要内容,如果未能解决你的问题,请参考以下文章
汉诺塔(Tower of Hanoi) 递归代码实现 c语言(顺序栈实现)