Введення:
Список / масив цілих чисел, для яких кожен елемент знаходиться в діапазоні 2-36
.
Вихід:
сума цілих чисел (як основа 10), де кожне наступне ціле число знаходиться в базі попереднього значення (починаючи зі звичайної бази 10).
Приклад:
Скажімо, у нас є такий вхід: [4, 12, 34, 20, 14, 6, 25, 13, 33]
Тоді у нас є така сума:
4 (4 in base-10) +
6 (12 in base-4 ) +
40 (34 in base-12) +
68 (20 in base-34) +
24 (14 in base-20) +
6 (6 in base-14) +
17 (25 in base-6 ) +
28 (13 in base-26) +
42 (33 in base-13)
= 235
Математична база пояснила:
я вважав припущенням, що всі знають, як працює база, але наведу короткий приклад того, як вона працює в будь-якому випадку, про всяк випадок. Візьмемо34 in base-12
для прикладу, як ми дісталися40
?
1-34 in regular base-10:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
So, from 1 to 34 is 34 steps in base-10
1-34 in base-12:
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 30, 31, 32, 33, 34
So, from 1 to 34 is 40 steps in base-12
Ось, можливо, корисний калькулятор.
Правила виклику:
- Розмір масиву буде в розумному діапазоні (як
1-100
/ див. Тестові випадки). - Тестові випадки ніколи не будуть містити цілих чисел, з яких поточне значення є недійсним для його попередньої бази (тобто у вас ніколи не буде щось на зразок
19 in base-6
або6 in base-6
, тому що base-6 містить лише цифри0-5
). - Ви можете взяти вклад будь-яким способом. Може бути як внутрішній масив, як рядок, розділений комою / пробілом і т. Д. Ваш дзвінок. (Вам також дозволяється приймати внутрішній масив, перевернутий, що може бути корисним для мов програмування на основі стека.)
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей на не-гольф мовах. Спробуйте створити якомога коротку відповідь на будь-яку мову програмування. - Для вашої відповіді застосовуються стандартні правила , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод з відповідними параметрами, повноцінні програми. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
[4, 12, 34, 20, 14, 6, 25, 13, 33] -> 235
4+ 6+ 40+ 68+ 24+ 6+ 17+ 28+ 42
[5, 14, 2, 11, 30, 18] -> 90
5+ 9+ 2+ 3+ 33+ 38
[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 12, 2, 11, 3, 10, 2, 10] -> 98
12+ 13+ 11+ 9+ 8+ 7+ 6+ 5+ 4+ 3+ 5+ 2+ 3+ 3+ 3+ 2+ 2
[36, 36] -> 150
36+ 114