Frage von leonardomessi, 93

bruch in java darstellen?

hallo leute ich muss folgendes programm schreiben. ist ziemlicch simple (Summe von quadranten) und habe eine formel die ich benutzen muss( ich weiß dass es einfacherere wege gibt aber es muss nach der formel sein)

und zwar in einer schleife diese formel eingeben und dann inkremieren nach jedem durchlauf(do-while schleife ist ein muss)

1/6n * (n+1) *(2n+1)

ich bin mir nicht wie man den bruch in java darstellt vielen dank im voraus

Antwort
von Schachpapa, 50

Du rechnest erst das Produkt aus und teilst am Ende durch 6. wenn du integer durch integer teilst, kommt integer raus 1/6 ergibt dann Null, egal mit was du das anschließend mal nimmst.

S = n * (n+1) * (2*n+1)/6

Expertenantwort
von TeeTier, Community-Experte für programmieren, 40

Eine Ganzzahldivision von 1 / 6 liefert 0!

Nimm einfach Gleitpunktzahlen: 1.0 / 6.0 * n * (n + 1) * (2 * n + 1)

Wie du siehst, Multiplikationszeichen nicht weglassen sondern immer explizit schreiben!

Viel Spaß noch mit der vollständigen Induktion! ;)

Antwort
von Willibergi, 49

Du schreibst einfach (1/6).

Java rechnet dann schon richtig.

Ich hoffe, ich konnte dir helfen.

LG Willibergi

Kommentar von leonardomessi ,

public class Aufgabe3 {
public static void main(String[]args){

double a,b,c;
double z=5;
a=(z+1)*((2*z)+1);
b=((1/6)*z);
c= a*b;
System.out.println(c);
}

}

es kommt 0 raus obwohl 55 das richtige ergebnis ist

Kommentar von TeeTier ,

Nimm 1.0 / 6.0 anstelle von 1 / 6! (siehe meine Antwort)

Kommentar von Willibergi ,

Richtig, wobei dort immer noch ein minimaler Rundungsfehler auftreten dürfte.
(c = 54,999999999999)

LG Willibergi

Keine passende Antwort gefunden?

Fragen Sie die Community