平衡基数:
平衡基数与正常基数基本相同,除了数字可以为正数或负数,而在正常基数中,数字只能为正数。
从这里开始,平衡的底数b
可以表示为balb
-平衡的底数4 = bal4
。
在此挑战的定义中,平衡的基数范围中的数字范围b
是从-(k - 1)
到b - k
,其中
k = ceil(b/2)
以各种平衡基数表示的数字范围的示例:
bal10:
k = ceil(10/2) = 5
range = -(5 - 1) to 10 - 5 = -4 to 5
= -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
bal5:
k = ceil(5/2) = 3
range = -(3 - 1) to 5 - 3 = -2 to 2
= -2, -1, 0, 1, 2
平衡基数中的数字表示形式与普通基数基本相同。例如,数字27
(以10为底)到bal4
(平衡以4为底)的表示为2 -1 -1
,因为
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
任务:
给定三个输入,您的任务是:
- 要转换的数字(
n
)- 此输入可以是灵活的,请参阅“ I / O灵活性”
n
当前位于(b
)中的基数n
要转换为(c
)的基数
在哪里2 < b, c < 1,000
。
以的平衡基数c
表示形式返回数字n
。输出也可以是灵活的。
程序/功能必须确定n
输入本身的长度。
I / O灵活性:
您的输入n
和输出可以通过以下方式表示:
- 您的语言对数组的定义
- 字符串,任何字符作为分隔符(例如,空格,逗号)
例子:
请注意,它们使用Python数组作为n
和输出。只要符合“ I / O灵活性”的定义,就可以使用适合您的语言的任何内容。
[2, -1, -1] 4 7 = [1, -3, -1]
[1, 2, 3, 4] 9 5 = [1, 2, 2, -1, 2]
[10, -9, 10] 20 5 = [1, 1, 1, -2, 1, 0]
这是代码高尔夫球,因此以字节为单位的最短代码胜出!
在您的第一个答案中,4不是合法的bal7数字;我相信答案应该是[1,-3,-1]。对于第二个测试用例([1,2,2,-1,2])和第三个测试用例([1,1,0,-2,1,0]),我也得到了不同的答案...?
—
格雷格·马丁
@GregMartin啊,哎呀-我是手工计算的,所以肯定会有一些问题。感谢您的关注!您可以仔细检查您的解决方案,以防万一吗?
—
clismique
@GregMartin @ Qwerp-Derp第三个测试用例是
—
ngenisis,2017年
[1,1,1,-2,1,0]