Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » C-golf Loch 11:

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 ]
000
19.07.2003, 17:11 Uhr
0xdeadbeef
Gott
(Operator)


So, ich denke, das wird das letzte C-Golf-Rätsel über geometrische Formen sein. Schreib ein Programm, dass eine Zahl einliest und ein Sechseck mit der entsprechenden Seitenlänge ausgibt. Muster:

Code:
3
__*
_*_*
*___*
*___*
*___*
_*_*
__*


'_' == ' ', wie immer. Par ist 160, ich hab 146. Ach so, eins noch: Bitte reines C, kein C++ diesmal.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 19.07.2003 um 17:13 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.07.2003, 17:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ui ein neues Rätsel da mach ich mich gleich mal dran
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.07.2003, 17:47 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


da drängt sich mir gleich die erste frage auf.
n>1 oder soll bei n==1 nur ein sternchen kommen?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.07.2003, 17:56 Uhr
0xdeadbeef
Gott
(Operator)


Ich würd sagen, n >= 3. Was das Programm macht, wenn 1 oder 2 eingegeben wird, soll mir egal sein.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.07.2003, 13:49 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hi beefy,
ich musste gestern abend noch zum Grillen
Da hatte ich leider keine Zeit mehr dein Rätsel zu lösen

was hälst du hiervon

C++:
int i,n,y,z;main(){scanf("%d",&n);for(y=n-2;i>-1;i-n?z?i:++i:--y,!y?z=1,--i:i)printf("%*c%*c\n",n-i,42,i-n?i*2:i*2-2,i?42:0);}



Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.07.2003, 14:14 Uhr
~0xdeadbeef
Gast


Ah, da hast du mir mal einen reingewürgt. Ich hab mir so ne ganz merkwürdige Apparatur zusammengebaut:

C++:
int n,b,t;main(i){scanf("%d",&n);t=3*n/2-2;for(i=n;b<3*n-2;i+=b++>t?1:-(n%2?1:b!=t))printf("%*c%*c\n",i>0?i:0,42,2*(n-(i>0?i:1)),i-n?42:0);}


Übrigens fallen mir vier Dinge auf, wie man dein Programm noch verkürzen könnte:

C++:
[b]int i,y,z;main(n)[/b]{scanf("%d",&n);for(y=n-2;[b]i+1[/b];i-n?[b]z||++i[/b]:--y,!y?z=1,--i:i)printf("%*c%*c\n",n-i,42,[b]2*(i-(i==n))[/b],i?42:0);}


Ich würde vorschlagen, wir arbeiten an deinem Ansatz weiter...

-- erst einloggen, dann schreiben. Seufz...

Dieser Post wurde am 20.07.2003 um 14:31 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.07.2003, 14:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


so ähnlich wie du hatte ich auch angefangen, hatte dann aber die glückliche Idee die Dreiecke zu spiegeln.

Ist ja unglaublich das du mein Programm anscheinend noch verstanden hast.
ich versteh es mittlerweile schon fast nicht mehr

Die verbesserungen gefallen mir gut. Auf das mit dem n ins main ziehen bin ich auch gerade eben noch gekommen.
Das mit dem i+1 ist echt schlau. Ich hab die ganze zeit überlegt wie ich da noch nen zeichen sparen kann, bin aber leider nicht drauf gekommen. Das mit der veroderung ist auch nen guter Trick. Wär ich nie drauf gekommen.

War echt nen gutes Rätsel. (weiter so)
Was mir an deinen Rätseln sher gut gefällt, ist dass man sich nicht lange in irgend eine Aufgabenstellung einarbeiten muss sondern sofort weiss was zu proggen ist. Man muss sich dann "nur" noch um das problem der implementierung kümmern.

Ich hab 2 Stunden gebraucht um einen brauchbaren Ansatz zu haben.
(Bei dem Dreieck warens nur 5 minuten) War echt ne harte Nuss

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.07.2003, 14:49 Uhr
0xdeadbeef
Gott
(Operator)


Ich hab noch einen für dich:

C++:
int i,y,z;main(n){scanf("%d",&n);for(y=n-2;i+1;i-n?z||++i:--y,[b]z|=!y,i-=!y[/b])printf("%*c%*c\n",n-i,42,2*(i-(i==n)),i?42:0);}


Das wären dann 122. Langsam wird das richtig handlich
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.07.2003, 15:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


spart zwar ein zeichen macht die sache aber "leider" wieder verständlicher
Wann kommt das nächste Rätsel? Ich bin ganz heiss drauf noch mal zu gewinnen.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.07.2003, 17:01 Uhr
0xdeadbeef
Gott
(Operator)


Einen hab ich noch;

C++:
int i,y,z;main(n){scanf("%d",&n);for(y=n-2;i+1;i-n?z||++i:--y,[b]i-=z=!y[/b])printf("%*c%*c\n",n-i,42,2*(i-(i==n)),i?42:0);}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.07.2003 um 17:01 Uhr von 0xdeadbeef editiert.
 
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: