Hilfe zu Programm zum Berechnen von Potenzen
-
Hallo
bräuchte Hilfe beim Schreiben von einem Programm:Es soll die Summe der Quadrate der ersten n positiven Ganzzahlen
1² + 2² + 3² + ………n²
berechnet werden,
Nach jeder Eingabe wird das Ergebnis ausgegeben und danach die nächste Zahl n angefordert.Hab noch kaum was mit C++ gemacht,wäre super wenn mir jemand helfen könnte.
Vielen Dank schon mal im VorrausSorry hatte mich verschrieben
-
frage nicht grade eindeutig. mach mal zwei oder drei durchläufe per hand und schreib hier, bei welchen eingaben welche ausgaben kommen sollten.
-
meinst du so etwas?
int ergebnis = 0; for (int i = 1; i <= n; i++) ergebnis = ergebnis + i*i;
"ergebnis" sollte nun die Summe alle Quadrate der gesamten natürlichen Zahlen bis n beinhalten.
-
Gauss hat da mal was als kleines Kind gemacht, so ohne Schleifen ...
-
knivil schrieb:
Gauss hat da mal was als kleines Kind gemacht, so ohne Schleifen ...
jaja vollständige Induktion:
1/6n(n+1)*(2n+1)will noch wer rekursion? *g*
-
nocheingast schrieb:
knivil schrieb:
Gauss hat da mal was als kleines Kind gemacht, so ohne Schleifen ...
jaja vollständige Induktion:
1/6n(n+1)*(2n+1)will noch wer rekursion? *g*
ja, ich.
dennint ergebnis = 1/6*n*(n+1)*(n+2);
rechnet falsch.
-
Im Tafelwerk muesste die Summe der ersten n-Quadratzahlen als explixite Formel drin stehen, bin mir grad net sicher ob Gauss die auch als Kind schon hergeleitet hat.
ja, ich.
dennint ergebnis = 1/6*n*(n+1)*(n+2);
rechnet falsch.
Kein Wunder, es ist ja schon spaet. Probiers mal mit copy & paste :).
-
volkard schrieb:
nocheingast schrieb:
jaja vollständige Induktion:
1/6n(n+1)*(2n+1)will noch wer rekursion? *g*
ja, ich.
dennint ergebnis = 1/6*n*(n+1)*(n+2);
rechnet falsch.
oh jo war zu dumm um abzuschreiben^^
knivil hat die richtige formel... also statt "(n+2)" hätte da "(2n+1)" hingemusst.rekursiv wäre es glaube dies hier:
int func(int n) { if (n <= 0) return 0; else return n*n + func(n-1); }
diesmal gab es nichts zum abschreiben trotzdem: ohne gewähr *g*
Aber zurück zur Frage.
War dies dein gesuchtes Problem?
-
knivil hat die richtige formel... also statt "(n+2)" hätte da "(2n+1)" hingemusst.
Habe meine wieder rausgeloescht, da sie schon mal von "nocheingast" (dir?) gepostet wurde und volkhard mich verwirrt hat.
-
ist es jetzt schlimm, daß
int ergebnis = 1/6*n*(n+1)*(2*n+1);
auch falsch rechnet?
c++ ist manchmal schon ne verrückte sprache.
-
hab ich gesehen... nur hab ich gar nicht gesehen das ich es richtig eingetippt habe und kann nun nicht mehr editieren -.-
(sollte mich hier anmelden).dieses "zu dumm um abzuschreiben" war eigentlich auf mich bezogen, da ich dachte, ich hätte dir, volkard, die falsche formel geschickt, also bitte nicht falsch verstehen ^^
-
volkard schrieb:
ist es jetzt schlimm, daß
int ergebnis = 1/6*n*(n+1)*(2*n+1);
auch falsch rechnet?
c++ ist manchmal schon ne verrückte sprache.Schlimm, schlimm ...
-
volkard schrieb:
ist es jetzt schlimm, daß
int ergebnis = 1/6*n*(n+1)*(2*n+1);
auch falsch rechnet?
c++ ist manchmal schon ne verrückte sprache.vllt eine Klammer um (1/6) bzw (n*(n+1)(2n+1)) / 6;?
Ansonst hättest du ja als ergebnis einen ziemlich kleinen Bruch wenn es mich nicht täuschtansonst versuch mal:
int ergebnis = n*(n+1)*(2*n+1); ergebnis = ergebnis *1/6;
-
die klammer brachte nix.
aber wenn ich am ende des ausdrucks oder gar in der folgezeile erst duch 6 teile klappts. danke.
-
Vielen Dank,danach habe ich gesucht