Python Summe ungerader Zahlen?
Benutze den
range
Benutze den
range
-Operator, um Summen ungerader Zahlen zu berechnen.
Eingabe: natürliche Zahl n
Ausgabe: Summe 1+3+5+...+(2n-1)
Wenn man beispielsweise die Zahl 4 eingibt, dann soll man die Ausgabe 16 (= 1+3+5+7) erhalten.
Fällt dir dabei etwas auf? Tipp: Quadrieren
Das ist die Aufegabenstellung,jedoch verstehe ich nicht was damit gemeint sein soll für eine Summe braucht man doch 2 Werte oder mehr aber wenn man nur eine zahl n eingibt welche summe soll man da bilden?
1 Antwort
![](https://images.gutefrage.net/media/user/FXG36/1592163969773_nmmslarge__154_0_218_218_c4b548bfb2ae5469c11514c569c654b4.jpg?v=1592163970000)
Es soll eine Zahl n eingegeben werden. Diese Zahl wird dann mit 2 multipliziert und 1 wird abgezogen.
Zum Beispiel n = 5
2n-1 = 9
Dann soll die Summe aller ungeraden Zahlen von 1 bis 9 (2n-1) berechnet werden.
Das mit dem Quadrieren verstehe ich nicht, es gibt zum einen den Weg über einen range-Loop und den Modulo-Operator, siehe:
https://www.tutorialspoint.com/python-program-to-print-all-odd-numbers-in-a-range
Deutlich eleganter und effizienter ist aber diese Formel, die sich am kleinen Gauss orientiert. range zu verwenden, geht zwar, ist aber schlecht.
def odd_sum(x):
x = 2*x-1
gauss = (x**2+x)/2
number_of_odds = (x+1)/2
return (gauss+number_of_odds)/2
![](https://images.gutefrage.net/media/user/FXG36/1592163969773_nmmslarge__154_0_218_218_c4b548bfb2ae5469c11514c569c654b4.jpg?v=1592163970000)
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
vielen vielen dank das hat mir sehr geholfen:)
![](https://images.gutefrage.net/media/user/FXG36/1592163969773_nmmslarge__154_0_218_218_c4b548bfb2ae5469c11514c569c654b4.jpg?v=1592163970000)
Die effizientere Formel ist n^2 ;)
Es gilt nämlich dass die summe der ersten n ungeraden zahlen n^2 ergibt