Для решения задачи по вычислению суммы квадратов чисел от 1 до n, можно воспользоваться циклом для последовательного складывания квадратов чисел. Также можно использовать формулу для суммы квадратов первых n натуральных чисел, которая вычисляет результат более эффективно, без использования цикла. Давайте рассмотрим оба подхода.
Подход с использованием цикла
Этот метод предполагает итерирование от 1 до n и добавление квадратов каждого числа к общей сумме.
def sum_of_squares(n):
total = 0
for i in range(1, n + 1):
total += i ** 2
return total
# Пример использования
n = int(input("Введите натуральное число: "))
print("Сумма квадратов чисел от 1 до", n, "равна:", sum_of_squares(n))
Подход с использованием формулы
Существует известная формула для суммы квадратов первых n натуральных чисел:
[ S = \frac{n(n + 1)(2n + 1)}{6} ]
Эта формула позволяет вычислить сумму квадратов значительно быстрее, особенно для больших значений n, поскольку избавляет нас от необходимости использования цикла.
def sum_of_squares_formula(n):
return n * (n + 1) * (2 * n + 1) // 6
# Пример использования
n = int(input("Введите натуральное число: "))
print("Сумма квадратов чисел от 1 до", n, "равна:", sum_of_squares_formula(n))
Примеры
Для n = 2:
- Подход с циклом: ( 1^2 + 2^2 = 1 + 4 = 5 )
- Подход с формулой: (\frac{2(2 + 1)(2 \cdot 2 + 1)}{6} = \frac{2 \cdot 3 \cdot 5}{6} = 5)
Для n = 3:
- Подход с циклом: ( 1^2 + 2^2 + 3^2 = 1 + 4 + 9 = 14 )
- Подход с формулой: (\frac{3(3 + 1)(2 \cdot 3 + 1)}{6} = \frac{3 \cdot 4 \cdot 7}{6} = 14)
Оба метода дают одинаковый результат. Вы можете выбрать любой из них в зависимости от ваших предпочтений или требований к эффективности.