对于基数转换,我们遇到了一些挑战,但是所有这些挑战似乎都适用于整数值。用实数做吧!
挑战
输入:
- 以10为底的实数正数 x。可以将其视为双精度浮点数或字符串。为了避免精度问题,可以将该数字假定为大于10 -6且小于10 15。
- 甲目标基站 b。这是2到36之间的整数。
- 甲数的小数位的 Ñ。这是1到20之间的整数。
输出:x在n的底数b中的表示形式,带有n个小数位。
在计算输出表达式时,第n个以外的数字应被截断(而不是四舍五入)。例如,x = 3.141592653589793
在base中b = 3
是10.0102110122...
,因此n = 3
输出将是10.010
(截断),而不是10.011
(舍入)。
对于在小数部分中产生有限位数的x和b,还允许使用等效的无限表示形式(截断为n位)。例如,4.5
十进制也可以表示为4.49999...
。
不用担心浮点错误。
输入输出格式
x将不带前导零。如果x恰好是整数,则可以假定它的小数部分为零(3.0
),也可以不为小数部分(3
)。
输出是灵活的。例如,可以是:
- 代表数字的字符串,在整数和小数部分之间带有合适的分隔符(小数点)。位
11
,12
等等(对于b超过10)可以表示为字母A
,B
像往常一样,或任何其它不同的字符(请注明)。 - 一个字符串用于整数部分,另一个字符串用于小数部分。
- 两个数组/列表,每个部分一个,包含从
0
到35
数字的数字。
唯一的限制是整数和小数部分可以分开(合适的分隔符)并使用相同的格式(例如,[5, 11]
对于表示整数部分['5', 'B']
的列表和对于表示分数部分的列表,否)。
附加规则
测试用例
输出被示出为与数字串0
,..., 9
,A
,..., Z
,使用.
作为小数点分隔符。
x, b, n -> output(s)
4.5, 10, 5 -> 4.50000 or 4.49999
42, 13, 1 -> 33.0 or 32.C
3.141592653589793, 3, 8 -> 10.01021101
3.141592653589793, 5, 10 -> 3.0323221430
1.234, 16, 12 -> 1.3BE76C8B4395
10.5, 2, 8 -> 1010.10000000 or 1010.01111111
10.5, 3, 8 -> 101.11111111
6.5817645, 20, 10 -> 6.BCE2680000 or 6.BCE267JJJJ
0.367879441171442, 25, 10 -> 0.94N2MGH7G8
12944892982609, 29, 9 -> PPCGROCKS.000000000
42, 13, 1
我们可以33
代替33.0
吗?
n
十进制数字