Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 22. Virtualrätsel (anfänger)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
12.05.2003, 14:40 Uhr
~0xdeadbeef
Gast


So, ich hab noch ein Komma wegoptimiert:

C++:
main(){int z,i=32;scanf("%d",&z);while(i--)putchar(z>>i&1|48);}


Zwei Kommas, drei Semikolons, 64 Zeichen. Ich finde, die zwei Semikolons, die ich mehr habe, mache ich durch die kürzere Gesamtlänge wieder wett.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
12.05.2003, 16:06 Uhr
virtual
Sexiest Bit alive
(Operator)


War das ein Angebot fürs Unentschieden!? - Gewährt, denn kürzer bekomm ichs wohl auch nicht hin.

Nebenbei: wenn man mal von so Monsterausdrücken wie in meiner Lösung absieht, dann finde ich die Anzahl von Semikolons und Kommata (aka Anzahl Anweisungen) ein ganz brauchbares Maß, die Kompaktheit des Codes auszudrücken, allerdings eigentlich nur in C, weil C++ einiges in den Konstruktoren versteckt werden kann und daher die Anzahl der Semikolons sinkt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
12.05.2003, 16:31 Uhr
~0xdeadbeef
Gast


Das mag ja sein, aber wenn du nach Anzahl der Zeichen oder Tastaturanschläge gehst, kriegst du krassere Konstrukte zusammen und der Code sieht nachher deutlich fieser aus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
10.06.2003, 14:44 Uhr
~0xdeadbeef
Gast


Ein Komma krieg ich noch raus und komm auf 62 Zeichen:

C++:
main(z){int i=32;scanf("%d",&z);while(i--)putchar(z>>i&1|48);}


Die zeichenmäßig kürzeste Lösung, die ich gefunden habe ist:

C++:
main(z,i){for(i=32,scanf("%d",&z);i--;putchar(z>>i&1|48));}


mit 60. Wenn man rückwärts gelten läßt, hat dieser Code 53 Zeichen:

C++:
main(z){for(scanf("%d",&z);z;z>>=1)putchar(z&1|48);}


Und wenn man bereit ist, den Bereich, den z umschliessen kann, einzuschränken, gehts auch so:

C++:
main(z){for(scanf("%d",&z);z>>=1;putchar(z&1|48));}


Was nochmal ein Zeichen spart.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: