import java.io.*; class Hanoi { /* Teller antall flytt som trengs og skriver ut informasjon om dem til skjermen */ int teller; void flytt(String fra, String til) { ++teller; System.out.println("Flytt fra "+fra+" til "+til); } /* Dette er den sentrale, rekursive funksjonen */ void oppdrag(int antall, String fra, String til, String via) { if (antall==0) return; oppdrag(antall-1, fra, via, til); flytt(fra,til); oppdrag(antall-1, via, til, fra); } /* Resten av programmet er uinteressant */ void start(int antall, String fra, String til, String via) { teller = 0; System.out.println("For å flytte "+antall+" brikker fra "+fra+" til "+til+" via "+via+" gjør man slik:"); oppdrag(antall,fra,til,via); System.out.println("Totalt kreves det altså "+teller+" flytt."); System.out.println(); } public static void main(String[] args) { System.out.println("The Ultimate Hanoi program!"); Hanoi obj = new Hanoi(); try { BufferedReader inn = new BufferedReader(new InputStreamReader(System.in)); while (true) { int antall = Integer.parseInt(inn.readLine()); obj.start(antall,"A","C","B"); } } catch (Exception e) { e.printStackTrace(); } } }