Wettbewerb: 10.000 Zahlen ausschreiben
Heute kam mir eine nette kleine Programmieraufgabe zu Ohren, und da dachte ich gleich an euch. Das könnte eine interessante Aufgabe sein um zu zeigen wie mit unterschiedlichen Vorgehensweisen das Problem gelöst werden kann.
Die Aufgabe: Die Zahlen 1 bis 10.000 sollen der Reihe nach ausgeschrieben werden, getrennt durch einen Umbruch. So sieht die Ausgabe dann aus:
eins zwei drei vier fünf ...... eintausendzweihundertdreizehn eintausendzweihundertvierzehn .... zehntausend
Ich hoffe die Aufgabe ist verständlich. Mich würde vor allem die Codelänge interessieren, ich glaube die Laufzeit oder Speicherverbrauch sind relativ uninteressant bzw. sehr ähnlich.
Programmiersprachen: Natürlich PHP, aber auch gern andere Sprachen zum Vergleich.
Edit: Eine sehr schöne Zusammenfassung der Ergebnisse hat Rodney Rehm geschrieben, Danke!
[…] Fahrradschloss hebt Drahtesel in luftige und sichere Höhe am Laternenpfahl – Engadget German Wettbewerb: 10.000 Zahlen ausschreiben | PHP Gangsta – Der PHP Blog WordPress: Mit PHP und XML-RPC bloggen | felixtriller.de Weiße Flecken auf Schloss Montabaur […]
Linkliste 21 at Random People
30 Jan 11 at 06:05
<?php
$namen = array('null','ein','zwei','drei','vier',utf8_decode('fünf'),'sechs','sieben','acht','neun','zehn','elf',utf8_decode('zwölf'));
for ($i=1; $i=1000) $myNumber.= $namen[intval(substr($number,0,-3))].'tausend';
if(intval($number) >=100 && intval(substr($number,-3)) > 0)$myNumber.= $namen[intval(substr($number,-3,1))].'hundert';
while (strlen($number) >2) $number=substr($number,1);
$myNumber .= (intval($number) <= 12)?($namen[intval($number)]):(($number<20)?(substr($namen[intval(substr($number,1,1))],0,4).'zehn'):(($number == 20)?('zwanzig'):(($number < 30)?($namen[intval(substr($number,1,1))].'undzwanzig'):(($number 29)?((intval($number)<40)?('ssig'):('zig')):('');
if(substr($myNumber,-4) == "null") $myNumber = substr($myNumber,0,-4);
if(substr($myNumber,-3) == "ein") $myNumber.= 's';
echo ''.ucfirst(utf8_encode($myNumber));
}
?>
maybe
12 Jan 12 at 16:19
15 Zeilen mit „“. Vergessen hinzuschreiben 🙂
maybe
12 Jan 12 at 16:20