Aus Zahl nächsthöhere "glatte" Zahl errechnen
-
Original erstellt von <Hendrik>:
Was isn mit dir los !?
Mein Vorschlag geht über höchstens 99 Iterationen, das ist für den PC doch ein Witz.vielleicht, weil while(kontostand%100!=0)++kontostand; nix anderes macht, als kontostand=(kontostand+99)%100;.
-
vielleicht, weil while(kontostand%100!=0)++kontostand; nix anderes macht, als kontostand=(kontostand+99)%100;.[/QB][/QUOTE]
Wieso das denn ?
Wenn ich bei mir 5164 als Ausgangswert nehme kommt 5200 raus.
Bei dir kommt 63 raus.Also entweder steh ich voll aufm Schaluch, oder du liegst falsch.
-
beachte die beiden kringel um das /.
-
@volkard
Wollen wir mal die Formel berichtigen:
kontostand+=100-kontostand%100;Berichtigt: Ich hatte kotostand geschrieben
[ Dieser Beitrag wurde am 10.07.2003 um 09:23 Uhr von RenéG editiert. ]
-
Original erstellt von <Hendrik>:
**Es sieht so aus als hieße "glatt" bei dir sowas wie restlos durch 100 teilbar.
Mein Vorschlag wäre also, den Kontostand so lange zu inkrementieren bzw. dekrementieren bis Kontostand%100==0.int kontostand=?; while(kontostand%100!=0) { ++kontostand; }
Das lässt sich natürlich auch noch verbessern (laufzeitmäßig).**
Ganz so dumm ist der Code doch gar nicht nur die iteration kann man sich sparen.
int kontostand=53424; kontstand = (kontostand + 100- (abs(kontostand)%100)) * sign(kontostand); 53500 = (53424 + 100 - 48) * 1;
-
Original erstellt von RenéG:
**@volkard
Wollen wir mal die Formel berichtigen:
kontostand+=100-kontostand%100;
**ja, ungefähr den code meinte ich. war doch klar zu erkennen, gell?
-
Original erstellt von RenéG:
@volkard
Wollen wir mal die Formel berichtigen:
kontostand+=100-kontostand%100;Das erhöht aber Zahlen, die schon "glatt" sind, um 100
if( int mod = kontostand % 100 ) kontostand += 100 - mod;
-
@MFK
Klaro, aber warum soviele Postings zu dem Thema, obwohl die Frage war, wie man das für 'alle' Zahlen macht, und nicht nur für alle vierstelligen Zahlen.
-
Original erstellt von MFK:
[quote]Original erstellt von RenéG:
[qb]@volkard
Wollen wir mal die Formel berichtigen:
kontostand+=100-kontostand%100;Das erhöht aber Zahlen, die schon "glatt" sind, um 100
QUOTE]Genau das ist nämlich das Problem bei Volkards Formel. Man könnte höchstens vorher prüfen ob "glatt"==true.
Danke für deinen Beistand
Ich muss gestehen, dass ich deine Formel auch nicht ganz verstehe.
(53424+100-48)*1 ist bei mir 53476
-
Original erstellt von <Hendrik>:
Danke für deinen Beistand
Ich muss gestehen, dass ich deine Formel auch nicht ganz verstehe.
(53424+100-48)*1 ist bei mir 53476 :([/QB]Tja, war wohl ein Zahlendreher beim übertragen man sollte seine Beispiele auch noch mal nachrechnen.