Сумма квадратов первых десяти натуральных чисел равна
Квадрат суммы первых десяти натуральных чисел равен
Следовательно, разница между суммой квадратов первых десяти натуральных чисел и квадратом суммы равна
Для заданного ввода n найдите разницу между суммой квадратов первых n натуральных чисел и квадратом суммы.
Контрольные примеры
1 => 0
2 => 4
3 => 22
10 => 2640
24 => 85100
100 => 25164150
Эта проблема была впервые объявлена в Project Euler # 6 .
Критерии победы
Нет правил о том, как должно быть поведение с отрицательным или нулевым вводом.
Самый короткий ответ выигрывает.
n
?Ответы:
Желе ,
54 байтаПопробуйте онлайн!
Как?
Реализует∑ni=2(i2(i−1)) ...
источник
Python 3 ,
2827 байт-1 спасибо xnor
Попробуйте онлайн!
Реализуетn(n−1)(n+1)(3n+2)/12
Python 2,
2928 байт:lambda n:(n**3-n)*(3*n+2)/12
источник
n*~-n**2*
или(n**3-n)*
.APL (Dyalog Unicode) , 10 байт
Попробуйте онлайн!
Как это устроено
Использует тот факт, что «квадрат суммы» равен «сумме кубов».
источник
(1⊥⍳×⍳×1-⍨⍳)10
.TI-Basic (серия TI-83),
1211 байтовОсуществляет(n22)(12+13n) . Принимает ввод в
Ans
: например, запустить,10:prgmX
чтобы вычислить результат для ввода10
.источник
nCr
!Brain-Flak ,
74726864 байтаПопробуйте онлайн!
Довольно простой способ сделать это с парой хитрых смен. Надеюсь, кто-нибудь найдет еще несколько хитростей, чтобы сделать это еще короче.
источник
Древесный уголь ,
1210 байтПопробуйте онлайн! Ссылка на подробную версию кода. Пояснение:(∑n1x)2=∑n1x3 так(∑n1x)2−∑n1x2=∑n1(x3−x2)=∑n1(x−1)x2=∑n−10x(x+1)2 .
источник
Perl 6 , 22 байта
Попробуйте онлайн!
Использует строительный∑ni=1(i2(i−1))
источник
Japt
-x
,9854 байтаПопытайся
объяснение
источник
JavaScript, 20 байт
Попробуйте онлайн
источник
APL (Dyalog), 17 байт
(Намного дольше) порт Jonathan Allan's Jelly ответ.
Попробуйте онлайн!
источник
+/¯1↓⍳×1⌽⍳×⍳
APL (Dyalog) , 16 байтов
Попробуйте онлайн!
источник
(+/×⍨)
→1⊥×⍨
согласно совету .⍳
внутреннюю часть(×⍨1⊥⍳)-⍳+.×⍳
Mathematica,
2117 байт-4 байта благодаря алефальфе .
Чистая функция. Принимает целое число в качестве входных данных и возвращает целое число в качестве выходных данных. Просто реализует полином, так как
Sum
s,Range
s,Tr
s и т. Д. Занимают много байтов.источник
(3#+2)(#^3-#)/12&
#.(#^2-#)&@*Range
реализует другое общее решение. (Но это также 17 байт.) И мы можем реализовать наивный алгоритм в 18 байт:Tr@#^2-#.#&@*Range
.Java (JDK) , 23 байта
Попробуйте онлайн!
источник
постоянный ток , 16 байт
Реализует(n3−n)(3n+2)/12
Попробуйте онлайн!
источник
05AB1E , 8 байтов
Объяснение:
Попробуйте онлайн!
источник
LDnOsOn-
была моя первая попытка тоже.С, С ++,
464037 байт (#define),504746 байт (функция)-1 байт благодаря Zacharý
-11 байт, благодаря потолку
Макро версия:
Версия функции:
Эти строки основаны на 2 формулах:
Сумма чисел от 1 до n =
n*(n+1)/2
Сумма квадратов от 1 до n =
n*(n+1)*(2n+1)/6
Таким образом, формула, чтобы получить ответ просто
(n*(n+1)/2) * (n*(n+1)/2) - n*(n+1)*(2n+1)/6
И теперь, чтобы «оптимизировать» количество байтов, мы разбиваем круглые скобки и перемещаем вещи, в то время как тестирование всегда дает один и тот же результат
(n*(n+1)/2) * (n*(n+1)/2) - n*(n+1)*(2n+1)/6
=>n*(n+1)/2*n*(n+1)/2 - n*(n+1)*(2n+1)/6
=>n*(n+1)*n*(n+1)/4 - n*(n+1)*(2n+1)/6
Обратите внимание на шаблон
p = n*n+1 = n*n+n
, поэтому в функции мы объявляем другую переменную,int p = n*n+n
и она дает:p*p/4 - p*(2n+1)/6
Ибо
p*(p/4-(2*n+1)/6)
и такn*(n+1)*(n*(n+1)/4 - (2n+1)/6)
, это работает только половину времени, и я подозреваю, что причиной является целочисленное деление (f(3)
даем 24 вместо 22,f(24)
даем 85200 вместо 85100, поэтому мы не можем разложить формулу макроса таким образом, даже если математически это то же самое.И макро, и версия функции находятся здесь из-за замены макроса:
F (3) дает
3*3*(3+1)*(3+1)/4-3*(3+1)*(2*3+1)/6 = 22
F (5-2) дает
5-2*5-2*(5-2+1)*(5-2+1)/4-5-2*(5-2+1)*(2*5-2+1)/6 = -30
и запутаться с приоритетом оператора. версия функции не имеет этой проблемы
источник
n
с(n)
. Кроме того,F(n) n
=>F(n)n
независимо.return p*p/4-p*(n-~n)/6
наreturn(p/4-(n-~n)/6)*p
.JavaScript (ES6), 22 байта
Попробуйте онлайн!
источник
Pyth, 7 байт
Попробуйте онлайн здесь .
Использует формулу в ответе Нейла .
источник
SNOBOL4 (CSNOBOL4) ,
7069 байтовПопробуйте онлайн!
источник
Пари / ГП , 21 байт
Попробуйте онлайн!
источник
05AB1E , 6 байтов
Попробуйте онлайн!
объяснение
Некоторые другие версии с таким же количеством байтов:
L<ān*O
Ln.āPO
L¦nā*O
источник
R , 28 байт
Попробуйте онлайн!
источник
sum(x<-1:scan())^2-sum(x^2)
за -1MathGolf , 6 байтов
Попробуйте онлайн!
РассчитываетΣNк = 1( к2( к - 1 ) )
Объяснение:
источник
Clojure , 58 байтПопробуйте онлайн!
Редактировать: я неправильно понял вопрос
Clojure ,
55, 35 байтПопробуйте онлайн!
источник
(apply +
короче(reduce +
.cQuents ,
1715 байтовПопробуйте онлайн!
объяснение
источник
APL (NARS), 13 символов, 26 байтов
используйте формулу Sum'w = 1..n '(w w (w-1)), возможно, я написал то же, что и некоторые другие записи + или -, как "1⊥⍳ × ⍳ × ⍳-1"; тестовое задание:
источник
Stax , 4 байта
Запустите и отладьте его
Для всех натуральных
k
чисел вплоть до ввода добавьтеk^2 * (k-1)
.источник
QBASIC,
4544 байтаЧистая математика экономит 1 байт!
Попробуйте это онлайн!
Предыдущий ответ на основе цикла
Попробуйте онлайн!
Обратите внимание, что REPL немного более расширен, потому что интерпретатор не работает в противном случае.
источник
JAEL ,
1310 байтПопробуйте онлайн!
Объяснение (генерируется автоматически):
источник
05AB1E , 6 байтов
Попробуйте онлайн!
Объяснение:
Æ
не часто бывает полезно, но пришло время сиять. Это бьет по наивностиLOnILnO-
двумя целыми байтами.источник