Java應用遞歸法處理漢諾塔成績的代碼示例。本站提示廣大學習愛好者:(Java應用遞歸法處理漢諾塔成績的代碼示例)文章只能為提供參考,不一定能成為您想要的結果。以下是Java應用遞歸法處理漢諾塔成績的代碼示例正文
漢諾(Hanoi)塔成績:現代有一個梵塔,塔內有三個座A、B、C,A座上有n個盤子,盤子年夜小不等,年夜的鄙人,小的在上(如圖)。
有一個僧人想把這n個盤子從A座移到B座,但每次只能許可挪動一個盤子,而且在挪動進程中,3個座上的盤子一直堅持年夜盤鄙人,小盤在上。在挪動進程中可以應用B座,請求打印挪動的步調。假如只要一個盤子,則不須要應用B座,直接將盤子從A挪動到C。
Java代碼以下:
public class Hanoi {
public static void main(String[] args) {
int disk = 3; //盤子
move(disk, 'A', 'B', 'C');
}
/*
* 依據題意,從上向下編號 => 1 ~ n
*/
/**
*
* @param topN 源塔頂的盤子編號
* @param from 從哪一個塔挪動
* @param inter 中介,過渡的塔
* @param to 目標塔
*/
private static void move(int topN, char from, char inter, char to) {
if (topN == 1) {
System.out.println("Disk 1 from " + from + " to " + to);
} else {
move(topN - 1, from, to, inter);
System.out.println("Disk " + topN + " from " + from + " to " + to);
move(topN - 1, inter, from, to);
}
}
}
out
Disk 1 from A to C Disk 2 from A to B Disk 1 from C to B Disk 3 from A to C Disk 1 from B to A Disk 2 from B to C Disk 1 from A to C