PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Wettbewerb: 10.000 Zahlen ausschreiben

with 53 comments

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!

Written by Michael Kliewe

Dezember 21st, 2010 at 4:08 pm

53 Responses to 'Wettbewerb: 10.000 Zahlen ausschreiben'

Subscribe to comments with RSS or TrackBack to 'Wettbewerb: 10.000 Zahlen ausschreiben'.

  1. […] 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 […]


  2. <?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

  3. 15 Zeilen mit „“. Vergessen hinzuschreiben 🙂

    maybe

    12 Jan 12 at 16:20

Leave a Reply

You can add images to your comment by clicking here.