Минулого разу, коли я намагався придумати щось легке, що не було дублікатом, це виявилося занадто важким. Тож, сподіваємось, цього разу справді щось теж може спробувати новачок.
Вхід:
Масив / список із цілими числами / десятковими знаками. (Або рядок, що представляє масив з цілими числами / десятковими знаками.)
Вихід:
Проведіть цикл через числа та застосуйте наступні п'ять математичних операндів у цьому порядку:
- Доповнення (
+
); - Віднімання (
−
); - Множення (
*
або×
або·
); - Відділ реального / калькулятора (
/
або÷
); - Експоненція (
^
або**
).
(ПРИМІТКА. Символи між дужками просто додаються як уточнення. Якщо ваша мова програмування використовує зовсім інший символ для математичної операції, ніж приклади, то це, звичайно, цілком прийнятно.)
Продовжуйте продовжувати, поки ви не досягнете кінця списку, а потім дайте результат суми.
Правила виклику:
- Експоненція на 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
. Детальну інформацію див. У Вікіпедії .