Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.

PQ Discord Server: #planetquake                                                                                                                                         Spenden? Hier entlang!

Frage zu Java

Forum für alles rund ums Coden und web.design - HTML, XHTML, XML, CSS, PHP, ASP, Zugriffsrechten, Mods uvm.
Antworten
no^mis
Capture
Capture
Beiträge: 6219
Registriert: Nov 2006

Frage zu Java

Beitrag 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!
Bild

Lieber toter Rapper als lebender Singer/Songwriter!
Nomschta
Rampage
Rampage
Beiträge: 14303
Registriert: Jun 2001
Steam: TomHonks

Beitrag 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.
BildBild Danke an Drasora für ihr Wichtelgeschenk!
MAR hat geschrieben:Führt der durch den Terrence-Hill? :ugly:
s3nft
Slash
Slash
Beiträge: 686
Registriert: Nov 2005

Beitrag von s3nft »

Wobei du dir das erste int->string wohl sparen kannst, da du die Zahl ja als String reinbekommst, oder?
Bild
no^mis
Capture
Capture
Beiträge: 6219
Registriert: Nov 2006

Beitrag 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...
Bild

Lieber toter Rapper als lebender Singer/Songwriter!
no^mis
Capture
Capture
Beiträge: 6219
Registriert: Nov 2006

Beitrag 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?
Bild

Lieber toter Rapper als lebender Singer/Songwriter!
xxx
Bones
Bones
Beiträge: 3074
Registriert: Aug 2003
Kontaktdaten:

Beitrag 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
Bild
Antworten