Hello!
Tell me what's wrong in the code, I run it - the computer freezes .. I fixed something, but I'm afraid to re-launch something .. This is the task of the Hanoi towers.
use encoding 'cp1251', STDOUT => 'cp866', STDIN => 'cp866'; #! /bin/usr/perl print "Задача о ханойских башнях\n"; print "Задайте число дисков на стержне А (не более 8)\n"; sub Hanoi{ my ( @A , @B , @C ,$n) = @_ ; #print @A ; if ($n == 1){ my ($k) = pop( @A ); push ( @C ,$k); #print "Стержень \ @A : \n"; #print @A ; #print "Стержень \ @B : \n"; # print @B ; #print "Стержень \ @C : \n"; #print @C ; return (print "Снять диск со стержня \ @A и положить на стержень \ @C ;\n"); } else{ Hanoi( @A , @C , @B ,$n-1); print "Cнять диск со стержня \ @A и положить на стержень \ @C \n"; Hanoi( @B , @A , @C ,$n-1); } } $num = <STDIN>; for ($num) { s/^\s+//; s/\s+$//; } $num + 0; @A = (); @B = (); @C = (); for ($i = $num; $i>0;$i--){ push( @A ,$i); print "A[\$i] = $i\n"; } Hanoi( @A , @B , @C ,$num);
Can any of you dare to run - check whether it works or not ..