К списку задач
Легко Решено: 0 Процент решений: 0%

Разность квадратов

Вычтите сумму квадратов из квадрата суммы.

Чему вы научитесь

  • Вычислять суммы чисел и квадратов
  • Использовать замкнутые формулы вместо циклов
  • Сравнивать два способа получить один ответ

Условие

Используя целые числа от 1 до n, вычислите два значения: сначала сложите все числа и возведите сумму в квадрат; отдельно возведите в квадрат каждое число и сложите эти квадраты. Верните разность первого значения и второго.

Реализуйте функцию difference_of_squares(n).

Ввод

n: Последнее включаемое целое число.

Вывод

Верните разность: квадрат суммы минус сумма квадратов.

Ограничения

0 ≤ n ≤ 50 000. Для n = 0 обе суммы равны 0. Все необходимые значения помещаются в знаковый 64-битный целый тип.

Примеры

Пример 1
Ввод:
n = 4

Ожидаемый вывод:
expected = 70
Ввод:
long long n = 4;

Ожидаемый вывод:
long long expected = 70;
Ввод:
long n = 4;

Ожидаемый вывод:
long expected = 70;

Пояснение

(1 + 2 + 3 + 4)² = 100. Сумма квадратов: 1 + 4 + 9 + 16 = 30. Разность: 100 − 30 = 70.

Пример 2
Ввод:
n = 1

Ожидаемый вывод:
expected = 0
Ввод:
long long n = 1;

Ожидаемый вывод:
long long expected = 0;
Ввод:
long n = 1;

Ожидаемый вывод:
long expected = 0;

Пояснение

Оба значения равны 1, поэтому их разность равна 0.

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Вы сравниваете две сводки одного и того же диапазона: одна через сумму, другая через сумму квадратов.

Подсказка 2

Используйте формулы для суммы чисел и суммы квадратов вместо обхода всех значений.

Подсказка 3

Особо обработайте случай нуля: обе величины там должны быть равны нулю.

Ожидаемая сложность

время O(1), доп. память O(1)

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.