Hanoi 塔问题是一个很经典的递归问题
import java.util.Scanner;
/*
* 若尘
*/
/**
* Hanoi 塔问题
* @author ruochen
* @version 1.0
*/
public class Hanoi {
public static void main(String[] args) {
int n;
Scanner sc = new Scanner(System.in);
System.out.print("Please input num: ");
n = sc.nextInt();
System.out.println("Process: ");
move(n, 'A', 'B', 'C');
}
/**
* 圆盘移动
* @param n 圆盘个数
* @param a 需要移动的位置
* @param b 借助的位置
* @param c 移动目的地
*/
public static void move(int n, char a, char b, char c) {
if (n < 0) {
System.out.println("enter n > 0");
} else if (n == 1) {
System.out.println(a + "-->" + c);
} else {
move(n - 1, a, c, b);
move(1, a, b, c);
move(n-1, b, a, c);
}
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。