/* Hanois t?rn * * N antall disker skal flyttes fra kolonne (A) til kolonne (C) ved hjelp * av en hjelpekolonne (B). En disk kan ikke legges opp? en disk som er mindre * enn seg selv og kun 1 disk kan flyttes av gangen. * * Noen problemer er lettere ? l?se med rekursjon enn uten. * * Dette programmet lager en steg-for-steg oppskrift p? l?sning av Hanoi's t?rn * for N antall disker. * * L?sning: Problemet kan beskrives annerledes. For ? flytte N disker fra * A til C, m? man f?rst flytte N-1 disker fra A til B, slik at den nederste * kan bli flyttet til C. Deretter m? vi flytte N-1 disker fra B til C med A * som hjelpekolonne. * * Vi ser at problemet har de to kriteriene vi er interessert i relatert til * rekursjon. Det m? finnes et basistilfelle (n?r N = 1 disk), og vi m? kunne * redusere problemet stegvis til vi n?r basistilfelle. * * * Kj?res med int som parameter: "java Hanoi int" */ class Hanoi{ public static void main(String[] args){ int n = Integer.parseInt(args[0]); hanoi(n, "A", "B", "C"); } public static void move(String fra, String til){ System.out.println("Flytt disk fra " + fra + " til " + til); } public static void hanoi(int n, String a, String b, String c){ if (n == 1){ move(a,c); return; } hanoi(n-1, a,c,b); move(a,c); hanoi(n-1,b,a,c); } }