Towers of Hanoi: Difference between revisions

From Rosetta Code
Content added Content deleted
mNo edit summary
Line 1: Line 1:
[http://yvharlen.at.tut.by/lib/anema-e.htm anema e core] [http://jrosestar.ifrance.com/html/pedrollo/ pedrollo] [http://macertot.ifrance.com/view/banca-di.htm banca di desio] [http://beyonddreamingx.angelfire.com/content/koyuncu.htm koyuncu] [http://ariadnafeni.ifrance.com/resources/bloody-roar/ bloody roar 2] [http://pohogue.angelfire.com/library/mklink.htm mklink] [http://lehartfi.at.tut.by/lib/ericsson-k.htm ericsson k600] [http://feralpaw-omm.ifrance.com/html/festival-bar/ festival bar 2004 blu] [http://macertot.ifrance.com/view/freaky-friday.htm freaky friday] [http://casloan.angelfire.com/small/pioneer-tv/ pioneer tv] [http://mckueltzi.at.tut.by/description/lib/adobe-photoshop.htm adobe photoshop 7] [http://rebuckma.angelfire.com/description/megane-sport.htm megane sport] [http://ariadnafeni.ifrance.com/resources/artronix-cd/ artronix cd rw drive] [http://nymphbmbzl222.ifrance.com/epson-cx.htm epson cx 3650] [http://ariadnafeni.ifrance.com/resources/mobili-ufficio/ mobili ufficio direzionali] [http://feralpaw-omm.ifrance.com/html/vampir-boy/ vampir boy] [http://alena344.ifrance.com/text/pentium-/ pentium 775 dissipatori e ventole] [http://ariadnafeni.ifrance.com/resources/manitoba-lago/ manitoba lago] [http://mcunderh.at.tut.by/resources/articles/ethernet-wireless.htm ethernet wireless bridge] [http://mcunderh.at.tut.by/resources/articles/mt-b.htm mt 302b] [http://feralpaw-omm.ifrance.com/html/buti-carlo/ buti carlo] [http://yoschaad.at.tut.by/lib/lmp.htm lmp] [http://agodichik.angelfire.com/styles/tank-you.htm tank you] [http://stdamin.at.tut.by/html/space-colony.htm space colony] [http://kairikekui.ifrance.com/resources/paige-davis/ paige davis sexy] [http://konstantinkar.ifrance.com/description/offerta-regali/ offerta regali friuli venezia giulia] [http://thmastrie.angelfire.com/resources/alloggio-madrid.htm alloggio madrid] [http://pohogue.angelfire.com/library/doppiette-da.htm doppiette da caccia] [http://yoschaad.at.tut.by/lib/britney-spears.htm britney spears sexi] [http://feralpaw-omm.ifrance.com/html/luigi-pareyson/ luigi pareyson] [http://webancks.at.tut.by/images/small/cinema-grandemela.htm cinema grandemela vr] [http://lasylvan.angelfire.com/new/motorola-supporto/ motorola supporto auto] [http://casloan.angelfire.com/small/provini-per/ provini per bimbi] [http://kataevka.ifrance.com/articles/batterie-sony/ batterie sony z1010] [http://habeard.angelfire.com/topic/gordon-mitchell.htm gordon mitchell] [http://sagaddy.angelfire.com/styles/gangbang-sicilia/ gangbang sicilia] [http://lidresze.angelfire.com/blog/software-trasformare.htm software trasformare divx dvd] [http://lidresze.angelfire.com/blog/maori.htm maori] [http://konstantinkar.ifrance.com/description/since-supernatural/ since supernatural] [http://kairikekui.ifrance.com/resources/dance-ejay/ dance ejay 2] [http://alena344.ifrance.com/text/caches-com/ caches com] [http://macertot.ifrance.com/view/taj-mahal.htm taj mahal salome de bahia] [http://snerma.angelfire.com/text/i-delitti/ i delitti del gatto nero] [http://hehalley.at.tut.by/content/view/hermanita.htm hermanita] [http://pohogue.angelfire.com/library/laserjet.htm laserjet 1160] [http://casloan.angelfire.com/small/hard-disk/ hard disk esterno apple] [http://macertot.ifrance.com/view/moschicida.htm moschicida] [http://rebuckma.angelfire.com/description/donna-dentro.htm donna dentro casa] [http://alena344.ifrance.com/text/tracy-chapman/ tracy chapman] [http://macertot.ifrance.com/view/non-volermi.htm non volermi male] [http://lidresze.angelfire.com/blog/el-motivo.htm el motivo] [http://kairikekui.ifrance.com/resources/max/ max71] [http://nymphbmbzl222.ifrance.com/amilo-d.htm amilo d1845 cd] [http://macertot.ifrance.com/view/masterizzatore-dvd.htm masterizzatore dvd pc portatile] [http://brandalinden.ifrance.com/topic/international-superstar.htm international superstar soccer su gba] [http://wowinoth.at.tut.by/web/ragazzo-praga.htm ragazzo praga] [http://kataevka.ifrance.com/articles/obsecion-adventura/ obsecion adventura] [http://lehartfi.at.tut.by/lib/webcam-live.htm webcam live effects] [http://nymphbmbzl222.ifrance.com/dare-per.htm dare per un hero] [http://macertot.ifrance.com/view/combattimento-due.htm combattimento due giocatori] [http://lehartfi.at.tut.by/lib/www-federbridge.htm www federbridge it] [http://isabellaval.ifrance.com/nardone-prof/ nardone prof giorgio] [http://hewvey.ifrance.com/library/shoa/ shoa] [http://isabellaval.ifrance.com/peluche-winnie/ peluche winnie the pooh] [http://feralpaw-omm.ifrance.com/html/persempre/ persempre] [http://wifry.angelfire.com/styles/summers-montague.htm summers montague] [http://agodichik.angelfire.com/styles/hotels-con.htm hotels con sauna e piscina in alto adige] [http://lidresze.angelfire.com/blog/gaussian.htm gaussian94] [http://ariadnafeni.ifrance.com/resources/person-person/ person person] [http://kairikekui.ifrance.com/resources/le-sedicenni/ le sedicenni] [http://kataevka.ifrance.com/articles/inno-euro/ inno euro 2004] [http://dweejah.ifrance.com/new/internet-casino/ internet casino gambling] [http://hehalley.at.tut.by/content/view/roberto-cavalli.htm roberto cavalli intimo] [http://jrosestar.ifrance.com/html/prestito-rho/ prestito rho] [http://isabellaval.ifrance.com/www-sita/ www sita it] [http://isabellaval.ifrance.com/siglo-xv/ siglo xv y xvi] [http://seedging.at.tut.by/text/directory/il-giapponese.htm il giapponese] [http://grsaltrie.at.tut.by/text/directory/favero-gioiello.htm favero gioiello] [http://wipitts.at.tut.by/text/directory/gioco-sporco.htm gioco sporco] [http://zaweaver.at.tut.by/text/directory/ray-ban.htm ray ban 4039] [http://gaburlei.angelfire.com/resources/marimba-dreams.htm marimba dreams] [http://seedging.at.tut.by/text/directory/kemal-monteno.htm kemal monteno] [http://casloan.angelfire.com/small/corrente-inglese/ corrente inglese] [http://stdamin.at.tut.by/html/sony-hdvi.htm sony hdv1080i videocamera] [http://hewvey.ifrance.com/library/travelmate-wlmi/ travelmate 2702wlmi portatili] [http://lasylvan.angelfire.com/new/aspirapolveri-filtro/ aspirapolveri filtro ad acqua] [http://isabellaval.ifrance.com/fish-frenzy/ fish frenzy] [http://ferandol.at.tut.by/images/small/home-cinema.htm home cinema harman kardon] [http://gaburlei.angelfire.com/resources/quotazioni-fiat.htm quotazioni fiat] [http://macertot.ifrance.com/view/hotel-male.htm hotel male] [http://dylantian.ifrance.com/styles/router-dlink.htm router dlink] [http://ariadnafeni.ifrance.com/resources/hitachi-microdrive/ hitachi microdrive 4gb bulk] [http://grsaltrie.at.tut.by/text/directory/cinture-donna.htm cinture donna in strass] [http://konstantinkar.ifrance.com/description/carhartt-abbigliamento/ carhartt abbigliamento] [http://spkleins.angelfire.com/talamone/ talamone] [http://kairikekui.ifrance.com/resources/suoni-strani/ suoni strani] [http://ariadnafeni.ifrance.com/resources/monaco-luci/ monaco luci rosse] [http://konstantinkar.ifrance.com/description/ramsteins/ ramsteins] [http://kedewber.at.tut.by/topic/eliche.htm eliche] [http://grsaltrie.at.tut.by/text/directory/elefantes.htm elefantes] [http://codice-tributi.6pense.cn/ codice tributi] [http://martin-short.infoforit.info/ martin short] [http://asus-ave.likit.info/ asus a8ve se sock 939] [http://moni.usitus.info/ moni] [http://msn-messenger.itmilan.info/ msn messenger gay] [http://radio-dvd.infoforit.info/ radio dvd mp3] [http://utility-video.waked.cn/ utility video multimedia] [http://istituti-di.usait.info/ istituti di nocera inferiore] [http://il-medico.itforus.info/ il medico la studentessa] [http://chanel-allure.waked.cn/ chanel allure homme sport] [http://scan-tab.likit.info/ scan tab] [http://unico.6pense.cn/ unico2004] [http://adventure-x.infoforit.info/ adventure x] [http://impossibl.itmilan.info/ impossibl] [http://km-bmw.likit.info/ km0 bmw 530 diesel auto km 0] [http://amplificatore-puccini.usitus.info/ amplificatore puccini] [http://im-so.waked.cn/ im so exited] [http://agriturismo-arcore.usait.info/ agriturismo arcore] [http://invitation-cards.likit.info/ invitation cards] [http://altoparlanti-infinity.6pense.cn/ altoparlanti infinity beta] [http://onar-lerek.waked.cn/ onar lerek] [http://testi-blink.itforus.info/ testi blink 182] [http://edimburgo-hotel.usait.info/ edimburgo hotel] [http://italian-anthem.usait.info/ italian anthem] [http://travelmate-wlmi.usitus.info/ travelmate 4602wlmi] [http://rojo-tvn.waked.cn/ rojo tvn cl] [http://pro-max.mered.cn/ pro max 90] [http://gli-eroi.infoforit.info/ gli eroi del 11 settembre 2000] [http://love-lounge.6pense.cn/ love lounge] [http://auto-noleggio.infoforit.info/ auto noleggio novi ligure] [http://combo-divx.usait.info/ combo divx vhs] [http://foto-stampa.usitus.info/ foto stampa digitale] [http://ghost-goblins.seeded.cn/ ghost goblins] [http://hotel-galatina.tanned.cn/ hotel galatina] [http://yu-yu.rekki-most.cn/ yu yu hakusho ghost fighters box 5] [http://ddr-pci.tanned.cn/ ddr2 pci express] [http://mf-he.infoforit.info/ mf he700] [http://isola-d.itmilan.info/ isola d elba traghetti] [http://lampada-trifacciale.likit.info/ lampada trifacciale] [http://moto-zundapp.tanned.cn/ moto zundapp] [http://clio-esport.itforus.info/ clio esport] [http://u-ciebie.mered.cn/ u ciebie w mie 347 cie] [http://eroe-per.itmilan.info/ eroe per famiglie] [http://lettore-cd.itforus.info/ lettore cd per dj pioneer] [http://telecomando-xp.mered.cn/ telecomando xp media center] [http://abbey-mutuo.likit.info/ abbey mutuo] [http://faq.6pense.cn/ faq] [http://cavo-hp.likit.info/ cavo hp ipaq] [http://stati-see.altars.cn/ stati see] [http://brasiliane-foto.seeded.cn/ brasiliane foto] [http://r-b.waked.cn/ r b summer] [http://albergo-economico.6pense.cn/ albergo economico valencia] [http://f-u.waked.cn/ f u right back di frankee] [http://la-via.likit.info/ la via del possesso] [http://j-s.infoforit.info/ j s bach suite] [http://paul-marshall.likit.info/ paul marshall jonson] [http://fraia.usait.info/ fraia] [http://smashing-pupmkins.itmilan.info/ smashing pupmkins] [http://www-onlygonzo.usait.info/ www onlygonzo org] [http://maryeva.mered.cn/ maryeva] [http://z-fujifilm.itmilan.info/ z1 fujifilm] [http://if-you.usitus.info/ if you wan t] [http://pile-torcia.itmilan.info/ pile torcia ricaricabili accessori] [http://mar-adentro.waked.cn/ mar adentro] [http://scheda-video.likit.info/ scheda video ati x800 agp] [http://pra-sonhar.likit.info/ pra sonhar] [http://fat-tits.6pense.cn/ fat tits] [http://come-persi.itmilan.info/ come persi la guerra] [http://poltroncina-stokke.6pense.cn/ poltroncina stokke] [http://indirizzi-parigi.likit.info/ indirizzi parigi] [http://diane-king.usait.info/ diane king] [http://avant-r.itmilan.info/ avant r 100 a] [http://franco-o.tanned.cn/ franco o franco] [http://free-tight.usitus.info/ free tight pussy pic] [http://athlon.usait.info/ athlon 939 3000] [http://consolidate-credit.tanned.cn/ consolidate credit card debt] [http://batteria-cellulare.usitus.info/ batteria cellulare sharp gx10] [http://immagini-berserk.itforus.info/ immagini berserk] [http://corriere-dello.usait.info/ corriere dello sport stadio] [http://avventure-trans.tanned.cn/ avventure trans] [http://dragoste-ozone.usitus.info/ dragoste ozone] [http://scanner.tanned.cn/ scanner 3770] [http://spaces-msn.itforus.info/ spaces msn] [http://incontri-di.rekki-most.cn/ incontri di sesso] [http://o-sle.itforus.info/ o sle mio] [http://fax-e.itforus.info/ fax e segreteria carta comune] [http://multifunzione-stampante.infoforit.info/ multifunzione stampante scanner laser] [http://macchina-per.itforus.info/ macchina per pane delonghi] [http://woofer.tanned.cn/ woofer 130] [http://navtech.usait.info/ navtech] [http://internal-cum.usitus.info/ internal cum] [http://f-.infoforit.info/ f 3 nikon] [http://golf-.usait.info/ golf 16 highline] [http://katharine-hepburn.altars.cn/ katharine hepburn collection] [http://hard-disk.itforus.info/ hard disk 2 5 usb2] [http://invio-sms.itforus.info/ invio sms web] [http://get-off.waked.cn/ get off me dick] [http://hotel-venezia.itforus.info/ hotel venezia albergo venezia pensione venezia] [http://camicie-ralph.tanned.cn/ camicie ralph lauren uomo] [http://ef-mm.altars.cn/ ef 70200mm f 4l usm] {{task}}
{{task}}


In this task, the goal is to solve the Towers of Hanoi problem with recursivity.
In this task, the goal is to solve the Towers of Hanoi problem with recursivity.
Line 13: Line 13:
if Ndisks > 0 then
if Ndisks > 0 then
Hanoi(Ndisks - 1, Start_Peg, Via_Peg, End_Peg);
Hanoi(Ndisks - 1, Start_Peg, Via_Peg, End_Peg);
Put_Line("Move disk" & Natural'Image(Ndisks) & " from " & Pegs'Image(Start_Peg) & " to " &
Put_Line("Move disk"
Pegs'Image(End_Peg));
Hanoi(Ndisks - 1, Via_Peg, End_Peg, Start_Peg);
end if;
end Hanoi;
begin
Hanoi(4);
end Towers;


==[[AppleScript]]==
[[Category:AppleScript]]
global moves --this is so the handler 'hanoi' can see the 'moves' variable
set moves to ""
hanoi(4, "peg A", "peg C", "peg B")
on hanoi(ndisks, fromPeg, toPeg, withPeg)
if ndisks is greater than 0 then
hanoi(ndisks - 1, fromPeg, withPeg, toPeg)
set moves to moves & "Move disk " & ndisks & " from " & fromPeg & " to " & toPeg & return
hanoi(ndisks - 1, withPeg, toPeg, fromPeg)
end if
return moves
end hanoi


==[[C plus plus|C++]]==
[[Category:C plus plus]]
'''Compiler:''' [[GCC]]

void move(int n, int from, int to, int via) {
if (n == 1) {
std::cout << "Move disk from pole " << from << " to pole " << to << std::endl;
} else {
move(n - 1, from, via, to);
move(1, from, to, via);
move(n - 1, via, to, from);
}
}



==[[E]]==
[[Category:E]]

def move(out, n, fromPeg, toPeg, viaPeg) {
if (n.aboveZero()) {
move(out, n.previous(), fromPeg, viaPeg, toPeg)
out.println(`Move disk $n from $fromPeg to $toPeg.`)
move(out, n.previous(), viaPeg, toPeg, fromPeg)
}
}
move(stdout, 4, def left {}, def right {}, def middle {})

==[[Forth]]==
[[Category:Forth]]
With locals:

CREATE peg1 ," left "
CREATE peg2 ," middle "
CREATE peg3 ," right "
: .$ COUNT TYPE ;
: MOVE-DISK
LOCALS| via to from n |
n 1 =
IF CR ." Move disk from " from .$ ." to " to .$
ELSE n 1- from via to RECURSE
1 from to via RECURSE
n 1- via to from RECURSE
THEN ;

Without locals, executable pegs:

: left ." left" ;
: right ." right" ;
: middle ." middle" ;
: print ( t f -- )
CR ." Move disk from " execute ." to " execute ;
: move-disk ( v t f n -- v t f )
dup 1 = if drop 2dup print exit then
1- >R
rot swap R@ ( t v f n-1 ) recurse
rot swap 2dup print
swap rot R> ( f t v n-1 ) recurse
swap rot ;
: hanoi ( n -- )
1 max >R ['] right ['] middle ['] left R> move-disk drop drop drop ;

==[[Java]]==
[[Category:Java]]

public void move(int n, int from, int to, int via) {
if (n == 1) {
System.out.println("Move disk from pole " + from + " to pole " + to);
} else {
move(n - 1, from, via, to);
move(1, from, to, via);
move(n - 1, via, to, from);
}
}

==[[Perl]]==
[[Category:Perl]]
sub move {
my $n = shift;
my $from = shift;
my $to = shift;
my $via = shift;
if ($n == 1) {
print "Move disk from pole $from to pole $to.\n";
} else {
move($n - 1, $from, $via, $to);
move(1, $from, $to, $via);
move($n - 1, $via, $to, $from);
};
};

==[[Pop11]]==
[[Category:Pop11]]

define hanoi(n, src, dst, via);
if n > 0 then
hanoi(n - 1, src, via, dst);
printf('Move disk ' >< n >< ' from ' >< src >< ' to ' >< dst >< '.\n');
hanoi(n - 1, via, dst, src);
endif;
enddefine;

hanoi(4, "left", "middle", "right");

==[[Python]]==
[[Category:Python]]

<pre>
def hanoi(ndisks, startPeg=1, endPeg=3):
if ndisks:
hanoi(ndisks-1, startPeg, 6-startPeg-endPeg)
print "Move disk %d from peg %d to peg %d" % (ndisks, startPeg, endPeg)
hanoi(ndisks-1, 6-startPeg-endPeg, endPeg)

hanoi(ndisks=4)
</pre>

==[[Seed7]]==
[[Category:Seed7]]

const proc: hanoi (in integer: disk, in string: source, in string: dest, in string: via) is func
begin
if disk > 0 then
hanoi(pred(disk), source, via, dest);
writeln("Move disk " <& disk <& " from " <& source <& " to " <& dest);
hanoi(pred(disk), via, dest, source);
end if;
end func;

==[[Toka]]==
[[Category:Toka]]

value| sa sb sc n |
[ to sc to sb to sa to n ] is vars!
[ ( num from to via -- )
vars!
n 0 <>
[
n sa sb sc
n 1- sa sc sb recurse
vars!
." Move a ring from " sa . ." to " sb . cr
n 1- sc sb sa recurse
] ifTrue
] is hanoi

Revision as of 12:46, 8 September 2007

anema e core pedrollo banca di desio koyuncu bloody roar 2 mklink ericsson k600 festival bar 2004 blu freaky friday pioneer tv adobe photoshop 7 megane sport artronix cd rw drive epson cx 3650 mobili ufficio direzionali vampir boy pentium 775 dissipatori e ventole manitoba lago ethernet wireless bridge mt 302b buti carlo lmp tank you space colony paige davis sexy offerta regali friuli venezia giulia alloggio madrid doppiette da caccia britney spears sexi luigi pareyson cinema grandemela vr motorola supporto auto provini per bimbi batterie sony z1010 gordon mitchell gangbang sicilia software trasformare divx dvd maori since supernatural dance ejay 2 caches com taj mahal salome de bahia i delitti del gatto nero hermanita laserjet 1160 hard disk esterno apple moschicida donna dentro casa tracy chapman non volermi male el motivo max71 amilo d1845 cd masterizzatore dvd pc portatile international superstar soccer su gba ragazzo praga obsecion adventura webcam live effects dare per un hero combattimento due giocatori www federbridge it nardone prof giorgio shoa peluche winnie the pooh persempre summers montague hotels con sauna e piscina in alto adige gaussian94 person person le sedicenni inno euro 2004 internet casino gambling roberto cavalli intimo prestito rho www sita it siglo xv y xvi il giapponese favero gioiello gioco sporco ray ban 4039 marimba dreams kemal monteno corrente inglese sony hdv1080i videocamera travelmate 2702wlmi portatili aspirapolveri filtro ad acqua fish frenzy home cinema harman kardon quotazioni fiat hotel male router dlink hitachi microdrive 4gb bulk cinture donna in strass carhartt abbigliamento talamone suoni strani monaco luci rosse ramsteins eliche elefantes codice tributi martin short asus a8ve se sock 939 moni msn messenger gay radio dvd mp3 utility video multimedia istituti di nocera inferiore il medico la studentessa chanel allure homme sport scan tab unico2004 adventure x impossibl km0 bmw 530 diesel auto km 0 amplificatore puccini im so exited agriturismo arcore invitation cards altoparlanti infinity beta onar lerek testi blink 182 edimburgo hotel italian anthem travelmate 4602wlmi rojo tvn cl pro max 90 gli eroi del 11 settembre 2000 love lounge auto noleggio novi ligure combo divx vhs foto stampa digitale ghost goblins hotel galatina yu yu hakusho ghost fighters box 5 ddr2 pci express mf he700 isola d elba traghetti lampada trifacciale moto zundapp clio esport u ciebie w mie 347 cie eroe per famiglie lettore cd per dj pioneer telecomando xp media center abbey mutuo faq cavo hp ipaq stati see brasiliane foto r b summer albergo economico valencia f u right back di frankee la via del possesso j s bach suite paul marshall jonson fraia smashing pupmkins www onlygonzo org maryeva z1 fujifilm if you wan t pile torcia ricaricabili accessori mar adentro scheda video ati x800 agp pra sonhar fat tits come persi la guerra poltroncina stokke indirizzi parigi diane king avant r 100 a franco o franco free tight pussy pic athlon 939 3000 consolidate credit card debt batteria cellulare sharp gx10 immagini berserk corriere dello sport stadio avventure trans dragoste ozone scanner 3770 spaces msn incontri di sesso o sle mio fax e segreteria carta comune multifunzione stampante scanner laser macchina per pane delonghi woofer 130 navtech internal cum f 3 nikon golf 16 highline katharine hepburn collection hard disk 2 5 usb2 invio sms web get off me dick hotel venezia albergo venezia pensione venezia camicie ralph lauren uomo ef 70200mm f 4l usm

Task
Towers of Hanoi
You are encouraged to solve this task according to the task description, using any language you may know.

In this task, the goal is to solve the Towers of Hanoi problem with recursivity.

Ada

with Ada.Text_Io; use Ada.Text_Io;

procedure Towers is
   type Pegs is (Left, Center, Right);
   procedure Hanoi (Ndisks : Natural; Start_Peg : Pegs := Left; Via_Peg : Pegs := Center; End_Peg : Pegs := Right) is
   begin
      if Ndisks > 0 then
         Hanoi(Ndisks - 1, Start_Peg, Via_Peg, End_Peg);
         Put_Line("Move disk"