Seite 1 von 1

Frage zu Java

Verfasst: 17.11.2011, 14:52
von no^mis
Wie kann ich folgende Formel (anfängergerecht) in Java umsetzen?

Ich will eine neunstellige Zahl über int nummer=Integer.parseInt=args[0] einlesen und jedes der neun Elemente mit seiner "Platzzahl" multiplizieren. Diese Zahlen sollen dann alle addiert werden und modulo 11 gerechnet werden.

Bild

Desweiteren möchte ich die Ziffernfolge im folgendem Format ausgeben lassen: X-XXXXX-XXX. (eher unwichtig, trotzdem nett zu wissen.)

Kann mir das jemand anfängergerecht erklären? Ein fortgeschrittener Code bringt mir nicht wirklich viel, ich würde lieber wissen, wie ich sowas generell umsetze, also das aufsplitten von Zahlen zb.

Gruß und danke!

Verfasst: 17.11.2011, 15:09
von Nomschta
du wandelst den integer in einen string bzw. ein char-array um und wandelst dann jeden char in dem string wieder in einen integer um. die formel lässt sich dann einfach in eine schleife packen.

pseudocode (angenommen der koeffizient für die höchstwertige zahl ist z1):

chararray = komplettezahl.ToCharArray();

i = 0;
endergebnis = 0;
solange i < 9
{
endergebnis = endergebnis+chararray*(i+1); (kurz: endergebnis += chararray*(i+1); )
i++;
}

endergebnis = endergebnis % 11; (kurz: endergebnis %= 11; )

ich kenne mich mit java nicht so gut aus, aber in C gibt es funktionen die dir ints/chars/strings in chars/strings/ints umwandelt (zahl.ToString() oder string.ToInt()). google sollte weiterhelfen.
eine andere art der umwandlung ist der sogenannte cast. hierzu schreibst du einfach xyz = (string)zahl. kP ob das in java geht.

Verfasst: 17.11.2011, 15:27
von s3nft
Wobei du dir das erste int->string wohl sparen kannst, da du die Zahl ja als String reinbekommst, oder?

Verfasst: 17.11.2011, 17:16
von no^mis
kann man das auch mit int[] = new a[9] oder sowas lösen?

arrays haben wir grad durchgenommen, denke wohl, wir sollen das dann damit lösen, so richtig habe ich das allerdings nicht verstanden...

Verfasst: 18.11.2011, 12:46
von no^mis
mit dem chararray sollen wir nicht arbetein.

also ich will die zahl über die kommandozeile einlesen, über:

Code: Alles auswählen

nummer=Integer.parseInt(args[0]); 
dann habe ich ja die zahl, mit der ich weiterarbeiten kann. wie schreibe ich denn, dass java mir bei ner 9stelligen zahl bspw: 987654321

Code: Alles auswählen

1*9 + 2*8 + 3*7.... + 9*1
rechnet?

Verfasst: 18.11.2011, 19:49
von xxx
987654321 % 10 = 1 (die letzte Stelle)
987654321 - 1 = 987654320
987654320 / 10 = 98765432 etc.

Dann speicherst du einfach die Zahlen in einem Array und machst das was Nomtscha vorschlägt