Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Weihnachtsgolfrätsel

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 ]
000
23.12.2010, 19:50 Uhr
Lensflare



Hallo

ich habe mir mal ein etwas anderes Golfrätsel ausgedacht.


C++:
#include <iostream>

void f(char *t) {
    //?
}

int main() {
    char text[5];

    f(text);

    std::cout << text;

    std::cin.ignore();

    return 0;
}



Es gilt f() so zu implementieren, dass als Ausgabe der nullterminierte Text

Code:
xmas

herauskommt

Wie immer mit möglichst wenig Zeichen.
Aber: Es dürfen folgende Zeichen im Code nicht vorkommen:
Ziffern (0-9)
Buchstaben ('a')
Plus und Minus (+ -)
Binäres OR, Binäres XOR (| ^)

Beispiel:

C++:
char a=5;   //nicht erlaubt wegen Ziffer 5
char b='x'; //nicht erlaubt wegen Buchstabe 'x'



Desweiteren keine Makros oder Funktionsaufrufe innerhab von f()

Ich habe einen ersten Prototypen fertig um sicher zu gehen dass es geht.

Wünsche euch viel Spass und frohe Weihnachten!
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 23.12.2010 um 20:45 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.12.2010, 21:10 Uhr
Lensflare



Bin bei 198 Zeichen
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.12.2010, 14:21 Uhr
TOSHMAX



Ich bin jetzt bei 149 Zeichen, unter der Annahme, dass Inkrementierung/Dekrementierung (++, --) erlaubt sind. Falls nicht habe ich absolut keine Ahnung, wie das gehen soll!

Aber ansonsten gutes Rätsel. Ich habe sehr lange gebraucht bis ich auf eine Lösung gekommen bin, die keine Zahlen beinhaltet!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.12.2010, 16:00 Uhr
Lensflare



Hi TOSHMAX

++ und -- sind auch nicht erlaubt.
Man kann aber mit anderen Mitteln inkrementieren und dekrementieren.

Tipp: Schaue dir an, wass passiert wenn man einen Integer bitweise invertiert.
Ich bin da eigentlich auch nur zufällig drauf gestoßen, als ich nach einem Weg zu inkrementieren gesucht hab und etwas experimentiert hab

EDIT:
Habe noch vergessen zu begründen warum gerade diese Zeichen nicht erlaubt sind:
Ich habe die erlaubten Zeichen so gewählt, dass als binäre Operatoren hauptsächlich * und & zum Einsatz kommen. Das soll den Code zusätzlich unleserlicher machen, weil * auch zum dereferenzieren und & zum adressieren verwendet wird.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 24.12.2010 um 16:08 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.12.2010, 18:00 Uhr
TOSHMAX



Mit deinem Tipp und langer Bedenkzeit habe ich auch 198 Zeichen geschafft. Mir fällt aber nichts mehr ein und ich werde bald blöd im Kopf vor lauter *&/%~ .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.12.2010, 16:49 Uhr
Lensflare



hmm % und / habe ich noch nicht verwedent... muss mir mal überlegen wo das sinn machen würde
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.12.2010, 18:00 Uhr
kronos
Quotenfisch
(Operator)


erster versuch: ebenfalls 198.
mal sehen...
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.12.2010, 18:17 Uhr
kronos
Quotenfisch
(Operator)


Was genau heißt keine Buchstaben? Ist
Code:
char c='\n';
char* str="!§$%()";

erlaubt?
Wie steht's mit
Code:
char*str="";
?

Und sind Unterfunktionen erlaubt?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 25.12.2010 um 18:36 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.12.2010, 19:26 Uhr
kronos
Quotenfisch
(Operator)


135...
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.12.2010, 00:54 Uhr
Lensflare



Hi kronos,

String Literale, also auch "leere" Strings sind nicht erlaubt und char Werte die innerhalb von Hochkommata ' ' stehen auch nicht.
Sonst wäre die Lösung bestimmt zu einfach.

Was meinst du mit Unterfunktionen?
Rekursion ist erlaubt, aber andere Funktionsaufrufe nicht.

hab meine Lösung jetzt zwar auf 174 Zeichen optimiert, aber ich denke mit einem frischen Ansatz werde ich noch was rausholen können.

135 klingt aber nach einer hart zu knackenden Grenze.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
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: