В прошлый раз, когда я пытался придумать что-то простое, что не было дубликатом, это оказалось слишком сложным ... Так что, надеюсь, на этот раз это действительно то, что новички могут попробовать.
Входные данные:
Массив / список с целыми числами / десятичными числами. (Или строка, представляющая массив с целыми числами / десятичными числами.)
Выход:
Переберите числа и примените следующие пять математических операндов в следующем порядке:
- Дополнение (
+
); - Вычитание (
−
); - Умножение (
*
или×
или·
); - Real / Calculator Division (
/
или÷
); - Возведение в степень (
^
или**
).
(ПРИМЕЧАНИЕ. Символы между круглыми скобками просто добавляются в качестве пояснения. Если ваш язык программирования использует для математической операции совершенно другой символ, чем примеры, то это, конечно, вполне приемлемо.)
Продолжайте, пока не дойдете до конца списка, а затем дайте результат суммы.
Правила соревнований:
- Возведение в степень 0 (
n ^ 0
) должно привести к 1 (это также относится к0 ^ 0 = 1
). - Для деления на 0 (
n / 0
) нет тестовых случаев , поэтому вам не нужно беспокоиться об этом пограничном случае. - Если массив содержит только одно число, мы возвращаем его как результат.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
Тестовые случаи:
[1,2,3,4,5] -> 0
-> 1 + 2 = 3
-> 3 - 3 = 0
-> 0 * 4 = 0
-> 0 / 5 = 0
[5,12,23,2,4,4,2,6,7] -> 539
-> 5 + 12 = 17
-> 17 - 23 = -6
-> -6 * 2 = -12
-> -12 / 4 = -3
-> -3 ^ 4 = 81
-> 81 + 2 = 83
-> 83 - 6 = 77
-> 77 * 7 -> 539
[-8,50,3,3,-123,4,17,99,13] -> -1055.356...
-> -8 + 50 = 42
-> 42 - 3 = 39
-> 39 * 3 = 117
-> 117 / -123 = -0.9512...
-> -0.9512... ^ 4 = 0.818...
-> 0.818... + 17 = 17.818...
-> 17.818... - 99 -> -81.181...
-> -81.181... * 13 = -1055.356...
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2] -> 256
-> 2 + 2 = 4
-> 4 - 2 = 2
-> 2 * 2 = 4
-> 4 / 2 = 2
-> 2 ^ 2 = 4
-> 4 + 2 = 6
-> 6 - 2 = 4
-> 4 * 2 = 8
-> 8 / 2 = 4
-> 4 ^ 2 = 16
-> 16 + 2 = 18
-> 18 - 2 = 16
-> 16 * 2 = 32
-> 32 / 2 = 16
-> 16 ^ 2 = 256
[1,0,1,0,1,0] -> 1
-> 1 + 0 = 1
-> 1 - 1 = 0
-> 0 * 0 = 0
-> 0 / 1 = 0
-> 0 ^ 0 = 1
[-9,-8,-1] -> -16
-> -9 + -8 = -17
-> -17 - -1 = -16
[0,-3] -> -3
-> 0 + -3 = -3
[-99] -> -99
n ^ 0 = 1
но 0 ^ n = 0
. Конфликт разрешается путем установки n != 0
обоих правил, но затем он остается 0 ^ 0
неопределенным. Однако в математике есть много вещей, которые хорошо подходят для математики, если 0 ^ 0
она определена 1
. Посмотрите Википедию для некоторых деталей.