Help for this page

Select Code to Download


  1. or download this
    use integer;@A=split//,<>;sub R{for$i(0..80){next if$A[$i];my%t=map{$_
    +/9==$i/9||$_%9==$i%9||$_/27==$i/27&&$_%9/3==$i%9/3?$A[$_]:0=>1}0..80;
    +R($A[$i]=$_)for grep{!$t{$_}}1..9;return$A[$i]=0}die@A}R
    
  2. or download this
     * Original Eccles & Toad solution (slightly modified)
     * Mark Byers reduced it to 187 bytes
    ...
     * Simon Stroh changed @A=split//,<> to $/=\1;@A=<> to reduce the prog
    +ram to 179 bytes
     * Mitsuru Kariya changed @A[map{ ... }]  to map@A[ ... ] to reduce th
    +e program to 178 bytes
     * Ton Hospel shortened the program to 121 bytes
    
  3. or download this
    $_=$`.$_.$'.<>;split//;${/[@_[map{$i-($i="@-")%9+$_,9*$_+$i%9,9*$_%26+
    +$i-$i%27+$i%9-$i%3}0..8]]/o||do$0}for/0/||print..9
    
  4. or download this
    $_=$`.$_.$'.<>;split//;map{/[@_[map{$i-($i="@-")%9+$_,9*$_+$i%9,9*$_%2
    +6+$i-$i%27+$i%9-$i%3}0..8]]/o||do$0}/0/||print..9