Ziffernsumme in Java
-MadMax- 13.11.2001 - 13:57 9828 23
crashman
OC Addicted
|
@that: so nehm ich na meinst das oder ? private int sum2(int x){ int retV =0; while(x > 0){ retV += x%10; x = x/10; } return retV; }
da kriegt er nur probleme wenn am anfang 0er stehen
|
-MadMax-
FAULER SACK
|
also, damit ihr euch nicht weiterhin den Kopf zerbrechen müsst, hier mal so wie ich es gelöst habe. Das Programm nimmt nur 4 stellige Zahlen auf, wobei nur die ersten 3 für die Ziffernsumme verwendet werden sollen. Die vierte ist die Zahl, mit der die Ziffernsumme % 10 vergleichen werden soll! class Pruefziffer {
public static void main(String[] args) {
int e, z, h, t, x, erg;
char again;
do {
IO.write("Geben Sie eine 4-stellige Zahl ein: ");
x = IO.readInt();
if ((x < 1000) || (x > 9999)) {
IO.writeLn("Eingabe nicht zulaessig");
}//if
else {
e = x % 10;
z = (x/10) % 10;
h = (x/100) % 10;
t = x / 1000;
erg = (z+h+t) % 10;
if ( erg == e) {
IO.writeLn("passt!!");
}//if
else {
IO.writeLn("passt nicht!!");
}//else
}//else
IO.writeLn();
IO.write("noch eine weitere Teilenummer pruefen? (j/n)");
IO.readBlanks();
again = IO.read();
IO.writeLn( again);
IO.writeLn();
} //do
while( again=='j' || again=='J');
IO.writeLn("!!UND AUS!!");
}//main
}//Pruefziffer
|
Nurmi
OC Addicted
|
also des IO package kommt mir ja SEHR bekannt vor ;-)
|
crashman
OC Addicted
|
frage was sind das für farben !?  die tun ja weh ...  sonst schauts eh gut aus bis auf die e z h t das ist ja ein bissal kompliziert  Strings würd ich immer mit equalsIgnoreCase vergleichen und nicht mit =! ,==
|
Ringding
Pilot
|
Mir gefallen die Farben! Wie hast du das gemacht?
Mit == darf man nie Strings vergleichen, sonst wird man nur Überraschungen erleben! Immer mit equals()!
|
Guest
Deleted User
|
Mir gefallen die Farben! Wie hast du das gemacht?
Mit == darf man nie Strings vergleichen, sonst wird man nur Überraschungen erleben! Immer mit equals()! die farben kommen von der (php)xxx(/php) kodierung (nur halt mit eckigen klammern bei uns).
|
-MadMax-
FAULER SACK
|
also des IO package kommt mir ja SEHR bekannt vor ;-) Woher denn??
|
that
Hoffnungsloser Optimist
|
@that: so nehm ich na meinst das oder ? private int sum2(int x){ int retV =0; while(x > 0){ retV += x%10; x = x/10; } return retV; }
da kriegt er nur probleme wenn am anfang 0er stehen ja so stell ich mir das vor ... und jetzt erklär mir wie am Anfang von einer Integerzahl 0er stehen können.
|
crashman
OC Addicted
|
nat eine gute frage  ich habs einfach probiert ... immer vom worst case ausgehen
|