Hanoi Tower Problem: Ada menara Buddhis di zaman kuno, dengan tiga A, B, dan C di menara. Ada N pelat di A. Piring bervariasi dalam ukuran, yang lebih besar berada di bagian bawah dan yang lebih kecil berada di bagian atas (seperti yang ditunjukkan pada gambar).
Ada seorang bhikkhu yang ingin memindahkan piring N ini dari kursi A ke kursi B, tetapi hanya satu piring yang diizinkan untuk bergerak pada satu waktu. Selama gerakan, piring -piring di tiga kursi selalu menjaga pelat besar di bawah dan pelat kecil di atasnya. Selama proses pergerakan, Anda dapat menggunakan kursi B untuk membutuhkan pencetakan langkah -langkah gerakan. Jika hanya ada satu piring, Anda tidak perlu menggunakan kursi B dan memindahkan pelat langsung dari A ke C.
Kode Java adalah sebagai berikut:
kelas publik hanoi {public static void main (string [] args) {int disk = 3; // piring bergerak (disk, 'a', 'b', 'c'); } /* * According to the question, number from top to bottom => 1 ~ n */ /** * * @param topN The plate number on the top of the source tower* @param from which tower to move from * @param inter agent, transition tower* @param to destination tower*/ private static void move(int topN, char from, char inter, char to) { if (topN == 1) { System.out.println ("Disk 1 dari" + dari + "ke" + ke); } else {move (topn - 1, from, to, inter); System.out.println ("disk" + topn + "dari" + dari " + dari +" ke " + to); pindahkan (topn - 1, inter, from, to);}}}keluar
Disk 1 dari A ke Disk C 2 dari A ke D disk 1 dari C ke B disk 3 dari A ke C disk 1 dari B ke A Disk 2 dari B ke C disk 1 dari A ke C C