Tower of Hanoi in Java
Tower of Hanoi
Ada 3 buah tiang
yaitu A, B, C dan beberapa Disc/Cakram dengan ukuran yang berbeda beda, dari
yang terkecil hingga yang terbesar, semua cakram tersebut ditematkan pada tiang
A, dengan Cakram yang terbesar dibagian paling bawah dan yang terkecil paling
atas, cakram tersebut tersusun secara rapi dan terurut dari terkecil hinggal
terbesar.
Goal dari permasaahan
ini adalah kita harus memindahkan semua Disc/Cakram dari Tiang A ke Tiang C,
kita hanya bisa memindahkan satu disk pada satu waktu, dimulai dari Cakram
paling besar harus berada di paling bawah dan terkecil di paling atas, Tiang B
digunakan sebagai perantara atau tiang bantu sebagai jembatan antara tiang A
dan Tiang C.
Cakram yang lebih
besar tidak boleh diletakan diatas Cakram yang lebh kecil dan Carkam yang lebih
kecil tidak boleh diletakan dibawah cakram yang lebh besar, Semua cakram harus
diletakan sedemikian rupa pada tiang C.
Implementasi Tower of Hanoi :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Scanner;
public class towers_of_hanoi {
static int move = 1;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter Number Cakram/Disc: ");
int Cakram = input.nextInt();
hanoi (Cakram, 'A', 'B', 'C');}
static void hanoi (int Cakram, char awal, char bantu, char tujuan){
if (Cakram >= 1) {
hanoi (Cakram-1, awal, tujuan, bantu);
move(Cakram, awal, tujuan);
hanoi (Cakram-1, bantu, awal, tujuan);
}
}
static void move (int step, char awal, char tujuan){
System.out.println("Langkah "+move);
move++;
System.out.print("Move Disc "+step);
System.out.print(" from "+awal);
System.out.println(" to "+tujuan);
}
}
Output :
import java.util.Scanner; | |
public class towers_of_hanoi { | |
static int move = 1; | |
public static void main(String[] args) { | |
Scanner input = new Scanner(System.in); | |
System.out.print("Enter Number Cakram/Disc: "); | |
int Cakram = input.nextInt(); | |
hanoi (Cakram, 'A', 'B', 'C');} | |
static void hanoi (int Cakram, char awal, char bantu, char tujuan){ | |
if (Cakram >= 1) { | |
hanoi (Cakram-1, awal, tujuan, bantu); | |
move(Cakram, awal, tujuan); | |
hanoi (Cakram-1, bantu, awal, tujuan); | |
} | |
} | |
static void move (int step, char awal, char tujuan){ | |
System.out.println("Langkah "+move); | |
move++; | |
System.out.print("Move Disc "+step); | |
System.out.print(" from "+awal); | |
System.out.println(" to "+tujuan); | |
} | |
} | |
Komentar
Posting Komentar