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