Schreiben Sie eine while-Schleife, die ausgeht, wenn die Summe der Quadrate 1^2 + 2^2 + 3^2 + ... einen Eingang m überschreitet. Drucken Sie die größte Summe kleiner als m und die Anzahl der Begriffe in der Summe aus.Kann jemand bei dieser Aufgabe helfen?
Example: If m = 18 then
1^2 +2^2 + 3^2 = 1 + 4 + 9 = 14
1^2 +2^2 + 3^2 + 4^2 = 1 + 4 + 9 + 16 = 30
Deshalb sollten Sie aus 3 und 14 für m drucken = 18.
Das ist, was ich habe, so weit, und ich bin im Grunde ganz an diesem Punkt verloren:
def sum_printer():
y = input("Please enter a maximum number: ")
y = int(y)
for result in range(y):
while result + result ** 2 >= y:
break
else:
print(str(result) + "^2 =", result ** 2, end=" ")
def sum_of_squares_result(m, n):
return sum(result ** 2 for result in range(m, n))
sum_printer()
Ich kann nicht herausfinden, wohin ich von hier aus gehen soll. Die Berechnung der Quadratsummen ist kein Problem, ebenso wenig wie die Unterbrechung der for-Schleife, wenn die Summe der Quadrate die Eingabe des Benutzers übersteigt. Ich kann einfach nicht herausfinden, wie man 3 und 14 basierend auf der Eingabe druckt.
Vielen Dank! Scheint, ich machte es mit einer for-Schleife zu kompliziert, wenn es nicht nötig war. – Mike