Ввод:
список / массив целых чисел, для которого каждый элемент находится в диапазоне 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
). - Вы можете принять входные данные любым удобным для вас способом. Может быть как массив int, как строка, разделенная запятыми / пробелами, и т. Д. Ваш вызов. (Вы также можете использовать int-массив в обратном порядке, что может быть полезно для стековых языков программирования.)
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к гольфу. Постарайтесь найти максимально короткий ответ для любого языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать 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