Erledigt Danke n stellige Zahl einlesen mit schleife Quersumme bilden
-
Sorex schrieb:
Evtl etwas tricky, aber du könntest zb dein int in einen string umwandeln, entweder über einen vektor oder einfacher, über stringstreams und dann die größe des strings ermitteln, mal die schleife außen vor gelassen
-
SeppJ schrieb:
Dobi schrieb:
int C(int i){return i?i%10+C(i/10):i;}
Jetzt musst du nur noch den Funktionskopf im alten C-Stil schreiben und alle Sonderzeichen durch Trigraphsequenzen ersetzen, dann ist es perfekt.
Ich find Digraphen schöner. Smileys im Code sind immer gut, auch wenn sie beim Golfen nicht helfen.
Den alten C-Stil akzeptiert mein g++ leider nicht.
-
SeppJ schrieb:
Sorex schrieb:
Evtl etwas tricky, aber du könntest zb dein int in einen string umwandeln, entweder über einen vektor oder einfacher, über stringstreams und dann die größe des strings ermitteln, mal die schleife außen vor gelassen
Ok, da ich gerade gesehen habe, dass es sich immer um eine 3-stellige Zahl handelt, muss ich dir an dem Punkt recht geben
-
Dobi schrieb:
Den alten C-Stil akzeptiert mein g++ leider nicht.
Ist in C++ auch verboten, aber deine Funktion könnte ja genausogut auch C sein. Könntest du mit extern C einbinden.
-
Was ist der "alte C Stil"?
-
314159265358979 schrieb:
Was ist der "alte C Stil"?
Google: old c style function declaration
Kommt übrigens besonders gut mit Default-int (der gilt nicht nur für den Rückgabetypen, sondern auch für die Parameter), um unlesbare Programme zu schreiben.
-
C(i)??<return i?i%10+C(i/10):i;??>
Geht das noch "besser"?
Edit: Sorry, ist OT und lässt sich auch gar nicht mit einem C++ Compiler kompilieren - dennoch würds mich irgendwie interessieren
-
Statt i würde ich _ als Variablenname verwenden. Und die Funktion könnte man __ nennen. Und vielleicht an "geeigneten" Stellen umbrechen:
__( _)??< return _?_%10+ __(_/10 ):_; ??>
-
lol
-
#include <iostream> using namespace std; int main(void){ cout<<"Dreistellige Zahl eingeben:"<<endl; int h=100,k=0; cin>>h; for(int l=10;l<10000;l*=10) k+=(h%l-k)/(l/10); k%3==0? cout<<"Die Zahl ist durch drei teilbar."<<endl: cout<<"Die Zahl ist kein Vielfaches von drei..."<<endl; return 0; }
Passt perfekt auf'n Titel.
-
SeppJ schrieb:
__( _)??< return _?_%10+ __(_/10 ):_; ??>
#define oO return
-
Haha, sehr schön, SeppJ. Hast du mal beim ioccc mitgemacht?
Edit: Mist, im Topic steht ja was von "mit Schleife". Man könnte aus dem code bestimmt auch ascii art machen, die wie ne Schleife an einem Geschenk aussieht.
-
Statt der häßlichen 10 kann man das aussagekräftige '\n' nehmen.
-
Hahaha! Oh mann!
EDIT: Was hat es mit den beiden Fragezeichen auf sich? Sind das Makros?
-
Oder 0xA - oder wär das zu aufdringlich ?
Hurray!Edit: Mal ganz im Ernst, völlig unabhängig von Portabiblität oder anderen Kriterien: Welchen Vorteil hat 10 gegenüber '\n'?
-
EOutOfResources schrieb:
EDIT: Was hat es mit den beiden Fragezeichen auf sich? Sind das Makros?
Sowas ähnliches - hast du schonmal etwas von "Trigraphen" gehört?
-
CStoll schrieb:
Sowas ähnliches - hast du schonmal etwas von "Trigraphen" gehört?
Bisher nicht. Danke.
-
Hey, es sind sozusagen Makros, aber total unnötige, da alle "Sonderzeichen", die Sie repräsentieren schon längst auf allen Tastaturen vorzufinden sind.
Schau mal hier.
http://de.wikipedia.org/wiki/Trigraph#Programmiersprache_CEdit:
??> <=> }
??< <=> {
-
Man soll uns ja nicht vorwerfen, wir würden auf den OP nicht eingehen:
http://i53.tinypic.com/2hx96yd.jpg
-
Dobi schrieb:
Hast du es mit dem
printf
etwas zu wörtlich genommen?