Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » C-golf Loch 7: Quersumme

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
18.06.2003, 09:46 Uhr
~0xdeadbeef
Gast


Willkommen zu Loch 7. Aufgabe diesmal: Schreibe ein Programm, dass eine Zahl einliest und ihre Quersumme wieder ausgibt, und das mit möglichst wenig Zeichen. Die genauen Regeln stehen im C-Golf Regelwerk-Thread.

Par sind 70 Zeichen. Ich bin bei 66.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.06.2003, 10:40 Uhr
arkantos




C++:
#include<iostream.h>
#include<string.h>
main(int c, char *v[])
{
int s=0;
for(int i=0; i<strlen(v[1]); i++)
{
s+=((int)v[1][i]-48);
}
cout<<s;
}




Wieviel Zeichen sind das?
--
schöne grüße,
arkantos

Dieser Post wurde am 18.06.2003 um 10:40 Uhr von arkantos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.06.2003, 10:43 Uhr
B.o.o.M



Ohne Leerschläge und Zeilenumbrüche 94
--
Beschichtet mit reinstem Salz aus heiligen Höhlen, von einem erleuchteten Yogi gegessen, wieder ausgeschwitzt, rekristalisiert, abgepackt, verschickt und von katholischen Jungfrauen im Zustand der Gnade auf diesen klebefähigen Polymerstrip aufgebracht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.06.2003, 10:53 Uhr
arkantos



zählen die includes auch dazu?
--
schöne grüße,
arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.06.2003, 10:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@arkantos,
nein die zählen nicht mit.
Lies mal das und das hier

Gruss Heiko
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 18.06.2003 um 10:59 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.06.2003, 11:01 Uhr
arkantos



dankeschön heiko!

aber mein vorschlag ist noch n bisschen zu lang...
--
schöne grüße,
arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
18.06.2003, 11:03 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@arkantos
Ich habe auch keine andere Idee als deine mit der -48. Bei deinem kann man zwar noch jede Menge zeichen einsparen aber auf 65 komme ich nicht

Gruss Heiko

es sei denn beefy sagt uns mal wie er dieses main definiert hat.

hast du das so gemacht?

C++:
main(c,v){....}



dann kann man natürlich noch ein paar zeichen sparen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 18.06.2003 um 11:06 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.06.2003, 11:08 Uhr
~0xdeadbeef
Gast


Nein, die includes zählen nicht. Wie gesagt, genaue Regeln im C-Golf Regelwerk.

OK, eigentlich wollte ich nur C-Golf spielen, aber ich schlage vor, das ganze in C und C++ aufzuteilen, also C++ getrennt von C zu bewerten. Meine Lösung in C war:

C++:
main(z,q){for(q=0,scanf("%d",&z);z;z/=10)q+=z%10;printf("%d",q);}


arkantos Lösung würde ich im ersten auf 80 Zeichen verkürzen:

C++:
int main(int c,char**v){int s=0;for(c=strlen(v[1]);c--;s+=v[1][c]-48);cout<<s;}


In C++ geht main nicht mehr ohne Typ durch.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.06.2003, 11:12 Uhr
~0xdeadbeef
Gast


und selbst würde ich für C++ das hier auf die Beine stellen. 58 Zeichen:

C++:
int main(){int z,q=0;for(cin>>z;z;z/=10)q+=z%10;cout<<q;}


mit einlesen meinte ich eigentlich von der Standardeingabe, aber meinetwegen könnt ihr auch Parameter parsen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
18.06.2003, 11:14 Uhr
arkantos



@heiko: so kann man die argumente an main nicht definieren.


C++:
main(int c, char *v[]){int s=0;for(int i=0; i<strlen(v[1]);){s+=((int)v[1][i++]-48);}cout<<s;}



88 Zeichen
--
schöne grüße,
arkantos
 
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: