====== FizzBuzz-Contest ====== {{tag> event contest,computing,edu,software}} Hier werden die Ergebnisse des FizzBuzz-Contests aufgeführt. ====== Aufgabe ====== Ein Programm schreiben, welches die ganzen Zahlen von 1 bis 100 ausgibt, aber statt jeder durch 3 teilbaren Zahl das Wort "Fizz", statt jeder durch 5 teilbaren Zahl das Wort "Buzz", und statt jeder durch beide Zahlen teilbaren Zahl das Wort "FizzBuzz", und das ganze in einer real existierenden Programmiersprache und mit möglichst wenig Zeichen. ====== Ranking ====== - Rhonda die Copycat, inspririert von framstag, Gero und Matze (6 Byte Perl + 6 Byte Ruby) - Gero der Auslagerer, inspiriert von framstag (7 Bytes Perl)\\ Matze der Zeichensparer-und-nun-auch-Auslagerer, Beitrag 2, inspiriert von framstag und Gero (7 Bytes Ruby) - framstag der Null-Dollar-Liebhaber (49 Bytes Perl) - Retro der Perl-und-nun-auch-Python-Vergewaltiger, Beitrag 2, inspiriert von Jules (57 Bytes, Python) - Jules der Zählschummler (59 Bytes bei gemeldeten 53, Python) - Retro der Perl-Vergewaltiger, Beitrag 1, Schummelei - wer erkennt's? (71 Bytes Perl) - Matze der Zeichensparer, Beitrag 1, inspiriert von hadez (75 Bytes Ruby) - hadez der nachtdemente rubybernd (78 Bytes Ruby) - ertes der keine Witzfigur ist (90 Bytes Haskell) ====== Ausser Konkurenz ====== * Armin bekommt den Kanonen-auf-Spatzen Orden am goldbroschierten Manila-Tampen für eine DSL die FizzBuzz löst: [[https://github.com/reloc0/FizzBuzzL|FizzBuzzL]] ====== Code ====== - ''eval$0'' //Aufruf mit: ''perl -l print\(\$_%15\?\$_%3\?\$_%5\?\$_\:Buzz\:Fizz\:FizzBuzz\)for\(1..100\)'' - In diese Datei muss der Code gespeichert werden//\\ ''eval$0'' //Aufruf mit: ''ruby \(1..100\).each\{\|a\|p\(\(a%3\>0\&\&a%5\>0\)\?a\:\(a%3\=\=0\?\"Fizz\"\:\"\"\)+\(a%5\=\=0\?\"Buzz\"\:\"\"\)\)\}'' - In diese Datei muss der Code gespeichert werden// - ''eval $0'' //Aufruf mit: ''perl -l print\(\$_%15\?\$_%3\?\$_%5\?\$_\:Buzz\:Fizz\:FizzBuzz\)for\(1..100\)'' - In diese Datei muss der Code gespeichert werden//\\ ''eval $0'' //Aufruf mit: ''ruby \(1..100\).each\{\|a\|p\(\(a%3\>0\&\&a%5\>0\)\?a\:\(a%3\=\=0\?\"Fizz\"\:\"\"\)+\(a%5\=\=0\?\"Buzz\"\:\"\"\)\)\}'' - In diese Datei muss der Code gespeichert werden// - ''print($_%15?$_%3?$_%5?$_:Buzz:Fizz:$0)for(1..100)'' //Aufruf mit: ''perl -l FizzBuzz'' - In diese Datei muss der Code gespeichert werden// - ''for i in range(100):print i%3/2*'Fizz'+i%5/4*'Buzz'or i+1'' //Aufruf mit: ''python -c ""''// - ''for i in range(100): print i%3/2*'Fizz'+i%5/4*'Buzz' or i+1'' //Aufruf mit: ''python -c ""''// - ''for(1..100){$a="Fizz";$a=""if$_%3;$a=$a."Buzz"if!($_%5);print"$_\r$a";}'' //Aufruf mit: ''perl -l -e ''''// - ''(1..100).each{|a|p((a%3>0&&a%5>0)?a:(a%3==0?"Fizz":"")+(a%5==0?"Buzz":""))}'' //Aufruf mit: ''ruby -e ''''// - ''(1..100).each{|a|puts((a%3>0&&a%5>0)?a:(a%3==0?"Fizz":"")+(a%5==0?"Buzz":""))}'' //Aufruf mit: ''ruby -e ''''// - ''a="Fizz";b="Buzz";main=mapM_ putStrLn[[show x,a,b,a++b]!!mod(div(gcd 15 x)2)4|x<-[1..100]]'' //Aufruf mit: ''runhaskell FILE.hs''// ====== Bytecount-Leiste für weitere Versuche ====== Zu messende Zeile in Monospace-Tags setzen, über die beiden Zählzeilen kopieren und hinten ablesen ''000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889'' ''123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890''