我们有一个r介于0和1之间的浮点数和一个整数p。
查找具有最小分母的整数分数,其分数近似r至少为- p位数。
- 输入:(
r一个浮点数)和p(整数)。 - 输出:
a和b整数,其中a/b(以浮点数表示)近似r到p数字。b是可能的最小此类正整数。
例如:
- 如果
r=0.14159265358979和p=9, - 那么结果是
a=4687和b=33102, - 因为
4687/33102=0.1415926530119026。
任何解决方案都必须在理论上适用于任意精度类型,但是由实现的固定精度类型引起的限制并不重要。
精度表示在“ 0.” 之后的数字位数r。因此,如果r=0.0123和p=3,a/b则应从开始0.012。如果的p小数部分的第一位数字为r0,则可以接受未定义的行为。
获胜标准:
- 算法上最快的算法获胜。速度以O(p)为单位。
- 如果有多个最快的算法,则最短者获胜。
- 我自己的答案被排除在可能的获胜者之外。
ps数学部分实际上看起来似乎容易得多,我建议您阅读这篇文章。
padEnd和match?您不能只将slice每个字符串正确地长度然后减去它们吗?