Оглавление > Разность между суммой квадратов и квадратом суммы (F#)
08.02.2023

Разность между суммой квадратов и квадратом суммы (F#)

Сумма квадратов первых десяти натуральных чисел равна 12 + 22 + ... + 102 = 385
Квадрат суммы первых десяти натуральных чисел равен (1 + 2 + ... + 10)2 = 552 = 3025

Следовательно, разность между суммой квадратов и квадратом суммы первых десяти натуральных чисел составляет 3025 − 385 = 2640.

Найдите разность между суммой квадратов и квадратом суммы первых ста натуральных чисел.

Решение

Решение весьма прямолинейное

  • создаем список натуральных чисел от 1 до 100 - s
  • объявляем функцию возведения числа в квадрат - square
  • считаем сумму квадратов чисел - sum1
  • считаем сумму чисел - sum2
  • нехитрыми вычислениями получаем ответ: sum22 - sum1
let s = [1..100]

let square x = x*x

let sum1 = List.sumBy square s
let sum2 = List.sum s
let answer = square sum2 - sum1

printfn $"the answer is {answer}" //the answer is 25164150

Можно переписать в более функциональном стиле:

let s = [1..100]

let square x = x*x

let answer = (s |> List.sum |> square) - (s |> List.sumBy square)

printfn $"the answer is {answer}" //the answer is 25164150