Verkürzen bitte: a-a%b+(a+1)%b
-
Kürzer schrieb:
kwt
a++
-
w..y schrieb:
Kürzer schrieb:
kwt
a++
Flasch !
++a;
-
(a+1)%b+b*floor(a/b)
-
das ist jetzt aber länger geworden
-
so besser, nur für integer?
(a+1)%b+b*(a/b)
und... ja, die hintere klammer muss sein und da kürzt sich auch nix weg.
-
Flasch schrieb:
Flasch !
++a;
das ist genauso falsch wie
a+1
-
groovemaster schrieb:
Flasch schrieb:
Flasch !
++a;
das ist genauso falsch wie
a+1
Hi Bruder !
Warum ?
-
Also sind beides int-Werte (dachte das ist klar, wegen Modulo).
a ist variable, b ist innerhalb der Funktion immer gleich, aber also auch variabel
int tu-was-tolles(int b) {
int sum=0;
for(int i=0; i<10; ++i)
sum+=a-a%b+(a+1)%b;
return sum;
}Also ist nur so ne pseudo-funktion sie in wirklichkeit anderst aus...
-
w..y schrieb:
Kürzer schrieb:
kwt
a++
Flasch schrieb:
w..y schrieb:
Kürzer schrieb:
kwt
a++
Flasch !
++a;
groovemaster schrieb:
Flasch schrieb:
Flasch !
++a;
das ist genauso falsch wie
a+1
groovemaster sollte kurz begründen.
-
Dass weder a++ noch ++a korrekt sind, sollte wohl klar sein. Hier wird der Inhalt der Variablen verändert, im originalen Ausdruck ist das nicht der Fall.
Bei a+1 wird zwar nichts verändert, aber es ist eben genauso falsch. Je nachdem, welche Werte a und b haben, lässt sich der Ausdruck auf 3 Möglichkeiten reduzieren:a+1 a+1+b a+1-b
Und dass a+1 nicht die einzige Lösung ist, kannst du mit ein paar Rechenbeispielen leicht widerlegen, zB a=5 und b=3.