[Python-de] Ein (sonderbares) "programming-contest" Problem

Gregor Lingl glingl at aon.at
Sam Jun 26 20:33:34 CEST 2004


Hallo Leute!
Wieder mal ne 'Denksportaufgabe':

Auf dem derzeit stattfindenden Linuxtag,
den ich 2 Tage lang besucht habe, wurde ich
in einen Programmierwettbewerb am hp-Stand
verwickelt.

Die gestellte Aufgabe war leider etwas
- gelinde gesagt - sonderbar:

Schreibe ein Programm in einer beliebigen
Progammiersprache, das eine als
Argument beigesteuerte Ziffernfolge
als 7-Segmentdarstellung ausgibt, mit

*möglichst kurzem Quellcode* (!)

Randbedingung: Zeilenlänge <= 132.

Die Eingabe 0123456789 erzeugt z.B.:

 -     -  -     -  -  -  -  -
| |  |  |  || ||  |    || || |
       -  -  -  -  -     -  -
| |  ||    |  |  || |  || |  |
 -     -  -     -  -     -  -

Wie es das folgende 171 Byte lange
Python-Programm tut (Meine dortige
Lösung war sogar etwas länger):

import sys
for i in range(5):
 r=""
 for c in sys.argv[1]:
  
n=3*int("14041030301312113131041301213112141130301414114131"[5*int(c)+i]);r+="    
- |    || |"[n:n+3]
 print r

Natürlich gab es kürzere (in anderen Sprachen).
(Versungen und vertan!)

Wie kann man es in Python besser machen?

Gregor