Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Kryptografie für Anfänger - C-golf

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 < [ 3 ] [ 4 ]
010
05.05.2003, 08:01 Uhr
virtual
Sexiest Bit alive
(Operator)


@beefy: bei dir kann man aber auch noch mindestens zwei Zeichen rausnehmen: Die Variable o ist ungenutzt.
--
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
011
05.05.2003, 11:11 Uhr
~0xdeadbeef
Gast


Du hast recht, o ist noch ein Relikt aus der Zeit um 130 Zeichen, als ich noch ein if benutzt habe und mir merken mußte, ob c ein Klein- oder Großbuchstabe ist...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
05.05.2003, 11:20 Uhr
~0xdeadbeef
Gast


OK, ein bißchen über Modulo nachgedacht, jetzt bin ich bei 90 Zeichen:

C++:
main(){int c;while((c=getchar())>=0)putchar(c>64&c<91?65+c%26:c>96&c<123?97+(c-6)%26:c);}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
06.05.2003, 11:29 Uhr
~0xdeadbeef
Gast


Ich hab denselben Gedankengang nochmal über dein Codestück laufen lassen, jetzt bin ich bei 81 Zeichen:

C++:
main(){int c;while((c=getchar())>0)putchar(isalpha(c)?(c%32+12)%26+(c&96)+1:c);}


((c-1)%32+13)%26 kann vereinfacht werden. Dadurch, dass du zweimal Modulo rechnest, kannst du die Konstanten, also 1 und 13, zusammenziehen, ohne das Ergebnis zu verändern. Ich versuch gerade rauszufinden, ob das nochmal geht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
06.05.2003, 11:45 Uhr
virtual
Sexiest Bit alive
(Operator)


Man muß aber - um korrekt zu bleiben (ANSI sind die Sourcen ja eh nicht mehr) - Sagen, daß es 82 Zeichen sind: getchar() kann auch ein 0 Byte zurückgeben, also getchar()>=0 wäre IMHO korrekter.
--
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
015
06.05.2003, 11:46 Uhr
virtual
Sexiest Bit alive
(Operator)


Ansonsten gibt es ja noch die Manager-Version:

C++:
// TODO: Jim, mach mir ein rot13, asap
main(){rot13();}


16 Zeichen!
--
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
016
06.05.2003, 12:00 Uhr
~0xdeadbeef
Gast


Das kann ich besser:

C++:
//Joe, schreib rot13 asap


0 Zeichen. Mann, bin ICH gut!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
06.05.2003, 12:01 Uhr
~0xdeadbeef
Gast


Und was getchar angeht - ich glaube kaum, dass es jemand schafft, auf der Tastatur ein Null-Zeichen einzugeben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
06.05.2003, 12:04 Uhr
~0xdeadbeef
Gast


Und die Sourcen sind noch ANSI, aber nicht mehr ISO. In ANSI-C89 werden einige Header per default included, weil sie sowieso jeder braucht. C99 will sie explizit da stehen haben:

Code:
$ gcc -ansi -pedantic rot13.c #läuft anstandslos
$ gcc -std=c99 rot13.c
rot13.c:1: warning: return type defaults to `int'
rot13.c: In function `main':
rot13.c:1: warning: implicit declaration of function `getchar'
rot13.c:1: warning: implicit declaration of function `putchar'
rot13.c:1: warning: implicit declaration of function `isalpha'

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
07.06.2003, 13:37 Uhr
~0xdeadbeef
Gast


79 Zeichen!

C++:
main(){int c;while((c=getchar())>0)putchar(isalpha(c)?c&96|(c%32+12)%26+1:c);}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]     [ 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: