Ich habe versucht, ein Stück Code, der eine Eingabe von "n" akzeptiert, berechnet die Summe der Zahlen auf der n-ten Zeile ein ungeradzahliges Dreieck, das wie folgt aussieht:CodeWars - Summe der ungeraden Zahlen - For Schleife
1
3 5
7 9 11
13 15 17 19
21 23 25 27 29
etc. Also für n = 3
, würde die Summe 7 + 9 + 11
seine dh 27
ich weiß, dass n nicht nur die Zeilennummer ist, sondern gleich auch die Anzahl der Zahlen in dieser Reihe. so n = 3
haben auch 3 ungeraden Zahlen darauf. Deshalb dachte ich, dass ich die erste Nummer der Zeile bekommen könnte, dann einfach durch die Addition von zwei zu der vorherigen Nummer, dann summiere es.
Mein Code unten funktioniert nicht, also für eine Eingabe von n=43
, berechnet mein Code, dass die Summe 3570
ist, während es tatsächlich 79507
entspricht.
public static int rowSumOddNumbers(int n) {
int firstNum = (2 * n) - 1;
int total = 0;
for (int i = 0; i < n; i++) {
total += (firstNum + 2);
}
return total;
}
Ich glaube, mein Problem ist, dass ich nicht die vorherige Nummer zusammen mit der aktuellen Nummer bin Hinzufügen + 2. Sollte es sein, dass ich die vorherige Schleife des Ergebnis speichern muß, als es Ergebnis der an die Stromschleife hinzufügen?
Jede Hilfe wird geschätzt.
Was haben Sie mit '(2 * n) - 1' für' firstNum' kommen lassen? Es ist eindeutig falsch. – bcsb1001