013
18.06.2003, 11:24 Uhr
~0xdeadbeef
Gast
|
@arkantos: Du läßt unnötig Leerzeichen. Zum Beispiel dein letzter Code (int vor main eingefügt, C++ verlangt das):
C++: |
int main(int c, char *v[]){int s=0;for(int i=0; i<strlen(v[1]);){s+=((int)v[1][i++]-48);}cout<<s;} //99
|
läßt sich nur durch Streichen von Leerzeichen um drei Zeichen verkürzen:
C++: |
int main(int c,char*v[]){int s=0;for(int i=0;i<strlen(v[1]);){s+=((int)v[1][i++]-48);}cout<<s;} //96
|
Weitere Optimierungen wären:
C++: |
int main(int c,char**v){int s=0;for(int i=0;i<strlen(v[1]);s+=v[1][i++]-48);cout<<s;} //86
|
Und ich hab deinen Ansatz inzwischen runter auf 75:
C++: |
int main(int c,char**v){int s=0;for(c=0;v[1][c];s+=v[1][c++]-48);cout<<s;}
|
weil Strings null-terminiert sind. |