12
实基转换
对于基数转换,我们遇到了一些挑战,但是所有这些挑战似乎都适用于整数值。用实数做吧! 挑战 输入: 以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, …