treffen:codegolfing:002_gc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
treffen:codegolfing:002_gc [2019/04/21 13:36]
max
treffen:codegolfing:002_gc [2021/08/25 08:15] (aktuell)
max
Zeile 1: Zeile 1:
-====== 002 CodeGolfing - Zahlenspirale ======+{{:treffen:codegolfing:nautiluscutawaylogarithmicspiral.jpg?400|}} 
 + 
 +[[https://creativecommons.org/licenses/by-sa/3.0/deed.de|CC-BY-SA 3.0]] by [[https://commons.wikimedia.org/wiki/User:Chris_73|Chris 73]] at Wikimedia Commons. [[https://de.wikipedia.org/wiki/Datei:NautilusCutawayLogarithmicSpiral.jpg|Link]] 
 + 
 +====== 002Zahlenspirale ====== 
 + 
 +| Serie | [[treffen:codegolfing|CodeGolfings]] | 
 +| Von | [[user:nopx|nopx]] | 
 +| Datum | 06.Januar 2017 | 
 +| Download | {{ :treffen:20171216_codegolfing_002.pdf |Aufgabenbeschreibung [pdf]}} | 
 +| Schweirigkeit | {{:treffen:problemsolving:progress3.png?nolink&160 |}} |  
 **Eingabe**:  **Eingabe**: 
 <code> <code>
Zeile 51: Zeile 62:
 ==== Lösungen ==== ==== Lösungen ====
 === Max (Perl) 470B === === Max (Perl) 470B ===
 +{{ :treffen:document.pdf |Beschreibung.pdf}}
 <code> <code>
 use POSIX;$n=$ARGV[0];$d=ceil sqrt$n;sub v($$){$_[$_[0]<$_[1]]}sub c($$){$_[$_[0]>$_[1]]}sub len{1+length@_[0]}sub g{($x,$y)=@_;$s=0;$l=c(c($x,$y),$d-v($x,$y)-1);$s+=v(1,4*$d-8*$_-4)for 0..$l-1;$u=$d-2*$l;$a=$y-$l;$b=$x-$l;$s+=$a==0?($b+1):$b==$u-1?($u+$a):$a==$u-1?(3*$u-$b-2):$b==0?(4*$u-$a-3):0;$s>$n?0:$s;}for(0..$d-1){$z=$_;for(0..$d-1){$q=$_;$m=0;$g=g($q,$_),$m = $g>$m?$g:$m for 0..$d-1;$j=g($_,$z);print"-"x(($_!=0)+len($m)-len($j));print$j!=0?$j:'-';}print$/;} use POSIX;$n=$ARGV[0];$d=ceil sqrt$n;sub v($$){$_[$_[0]<$_[1]]}sub c($$){$_[$_[0]>$_[1]]}sub len{1+length@_[0]}sub g{($x,$y)=@_;$s=0;$l=c(c($x,$y),$d-v($x,$y)-1);$s+=v(1,4*$d-8*$_-4)for 0..$l-1;$u=$d-2*$l;$a=$y-$l;$b=$x-$l;$s+=$a==0?($b+1):$b==$u-1?($u+$a):$a==$u-1?(3*$u-$b-2):$b==0?(4*$u-$a-3):0;$s>$n?0:$s;}for(0..$d-1){$z=$_;for(0..$d-1){$q=$_;$m=0;$g=g($q,$_),$m = $g>$m?$g:$m for 0..$d-1;$j=g($_,$z);print"-"x(($_!=0)+len($m)-len($j));print$j!=0?$j:'-';}print$/;}
  • treffen/codegolfing/002_gc.1555853769.txt.gz
  • Zuletzt geändert: 2020/10/18 14:01
  • (Externe Bearbeitung)