输入:
一个整数列表/数组,其每个项目都在的范围内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
,因为基数6仅包含数字0-5
)。 - 您可以根据需要选择输入内容。可以作为整数数组,也可以作为逗号/空格分隔的字符串,等等。您的呼叫。(您也可以反转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