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
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
Die effizientere Formel ist n^2 ;)
Es gilt nämlich dass die summe der ersten n ungeraden zahlen n^2 ergibt