Guten Tag weiss jemand wie ich die Quersummer einer zahl errechne...
Beispiel... von 59 ist die Quersumme 5+9 = 14 ;
Dabei soll die Variable in eine Zahl eingegeben werden !
kingbozz Gast |
kingbozz Gast |
Guten Tag weiss jemand wie ich die Quersummer einer zahl errechne...
Beispiel... von 59 ist die Quersumme 5+9 = 14 ;
Dabei soll die Variable in eine Zahl eingegeben werden !
Hast du dir denn schonmal ernsthaft Gedanken dazu gemacht? Wie würdest du denn rangehen an die Sache?
Ich hab selber auch keinen passenden Algorithmus auf Lager. Aber die Problemstellung ist simpel. Da muss sich doch etwas zusammenreimen lassen.
Also, wie sieht's aus? Irgendwelche Ideen?
greez
JoSsiF
Für den Fall, dass du dich mit Java nicht so auskennst:
Wenn du ne int-Zahl durch 10 teilst, dann bekommst du wieder ne int-Zahl (Nachkommastellen werden einfach abgeschnitten)
Wenn du ne Ganzzahl MODULO rechnest, dann bekommst du den Rest, wenn du durch 10 teilen würdest. In Java schreibt man für Modulo ein Prozentzeichen...
Beispiel
int i=123;
System.out.println(i / 10);
System.out.println(i % 10);
Ausgabe:
12
3
Denn 123/10 = 12 Rest 3
Pack das in ne Schleife, denk selber bisl drüber nach...
Schöner Ansatz, daran hatte ich noch gar nicht gedacht
Und es zeigt auch mal wieder, dass viele Wege nach Rom führen. Für den Fall, dass die Zahl eingegeben werden soll, würde sich noch eine andere Lösung anbieten:
Nach der Eingabe liegt die Zahl als String vor. Diesen String könnte man "Ziffer für Ziffer" (also eigentlich: Zeichen für Zeichen) zerhacken, dann auf int casten und den ganzen Schotter aufsummieren.
Jetzt brauchst du nur mal abchecken, welche Lösung für dich besser geeignet wäre - oder eine weitere erfinden ...ja, und dann das Ganze in ein Stück Code pressen.
greez
JoSsiF
kann mir mal jemand helfen ich komme irgendwie nicht klar....komme in eine endlos schleife mit falschen ergebnis...
int quersumme,QuersummeDurchZehn, QuersummeModulu;
Scanner sc= new Scanner (System.in);
System.out.print("Quersumme: ");
quersumme = sc.nextInt();
while(quersumme>10)
{
QuersummeDurchZehn = quersumme/10;
QuersummeModulu = quersumme%10;
System.out.println("Durch 10: "+QuersummeDurchZehn);
System.out.println("Modulu : "+QuersummeModulu);
if(quersumme<10)break;
}
}
}
du musst die einzelnen modulos natürlich addieren... das mit der ausgabe oben war nur um dir zu verdeutlichen was da raus käme...
int zahl = 123;
int quersumme = 0;
while (zahl > 0) {
quersumme += zahl%10;
zahl=zahl/10;
}
System.out.println("Quersumme: "+quersumme);
du musst die einzelnen modulos natürlich addieren... das mit der ausgabe oben war nur um dir zu verdeutlichen was da raus käme...
int zahl = 123;
int quersumme = 0;
while (zahl > 0) {
quersumme += zahl%10;
zahl=zahl/10;
}
System.out.println("Quersumme: "+quersumme);
« Zahl1 größer kleiner als Zahl2, oder gleich groß? | VB 2008 express: größer kleiner gleich null ?? » | ||