Herausfinden wann Übertrag zu trifft
-
ok, ich habe hier einen Counter und ich möchte gerne feststellen, wann folgende Überträge auftreten
9->10
99->100
999->1000
9999->10000Es ist mir schon klar dass ich für das obige Beispiel gerade mal eine if Anweisungen mit 4 OR benötige und ich hätte das gewünschte Ziel erreicht. Ich bin aber auf der suche nach einer allgemeinen Formel, wie kann ich das programmiertechnisch lösen
also wenn anzahl = 9
würde es ja so passen
if(((anzahl+1)%10) == 0){ return TRUE; }
das trifft dann aber auch auf
anzahl = 19 zu
-
^^ such mal nach der funktion 'log10'
-
Formel1 Freak schrieb:
ok, ich habe hier einen Counter und ich möchte gerne feststellen, wann folgende Überträge auftreten
9->10
99->100
999->1000
9999->10000Es ist mir schon klar dass ich für das obige Beispiel gerade mal eine if Anweisungen mit 4 OR benötige und ich hätte das gewünschte Ziel erreicht. Ich bin aber auf der suche nach einer allgemeinen Formel, wie kann ich das programmiertechnisch lösen
also wenn anzahl = 9
würde es ja so passen
if(((anzahl+1)%10) == 0){ return TRUE; }
das trifft dann aber auch auf
anzahl = 19 zu
int x = 10; if(((anzahl+1)%x) == 0){ x = x * 10; return TRUE; }
-
ach so, wenn dir 'log10' zu doof ist (wegen fliesskomma):
probier mal das:// gibt 1 zurueck wenn x+1 zur naechsten zehnerpotenz wechselt int only_nines (int x) { while (x) { if (x%10 != 9) return 0; x = x/10; } return 1; }
-
+fricky schrieb:
ach so, wenn dir 'log10' zu doof ist (wegen fliesskomma):
probier mal das:// gibt 1 zurueck wenn x+1 zur naechsten zehnerpotenz wechselt int only_nines (int x) { while (x) { if (x%10 != 9) return 0; x = x/10; } return 1; }
Danke erstmal für die Antworten. Dieses Beispiel gefällt mir am besten.
@Belli bist du sicher daß dein Beispiel funktioniert? Mit einem "static int" vieleicht, aber so wie es jetzt dasteht, glaube ich es nicht. Möglicherweise habe ich da aber etwas übersehen.
-
Formel1 Freak schrieb:
@Belli bist du sicher daß dein Beispiel funktioniert? Mit einem "static int" vieleicht, aber so wie es jetzt dasteht, glaube ich es nicht. Möglicherweise habe ich da aber etwas übersehen.
Das kommt auf den Kontext an. Natürlich darf der Scope von x nicht verlassen werden, solange weitere Überläufe stattfinden können.
So aus dem Zusammenhang gerissen müsste x tatsächlich global oder static sein.