【发布时间】:2014-06-26 09:20:54
【问题描述】:
我最近遇到了一个谷歌问的面试问题,我找不到解决这个问题的优化算法:
给定 2 个数字 a 和 b。 a和b相除,结果以字符串形式返回。
示例 1
Input: a=100 , b=3
Output: 33.(3)
Note: (100/3)=33.33333....Here 3 is in brackets because it gets repeated continuously.
示例 2
Input: a=5 , b=10
Output: 0.5
示例 3
Input: a=51 , b=7
Output: 7.(285714)
Note: 51/7 = 7.285714285714285714285714285714......... Here 285714 is in brackets because it is repeating.
如果有人能想到这个问题的时间优化算法,那就太好了。 提前谢谢你。
【问题讨论】:
-
你检查Stern–Brocot tree了吗?
-
具体什么是规范,什么是自己的cmets,还不是很清楚。问题是什么?分工?小数位数?括号格式?
7.(285714)来自哪里,是什么决定了小数位数?因为它们是一个序列,还是什么? -
@n.m.特别是因为您只能从双精度浮点数中得到这么多小数...我想您需要一个特殊的浮点库才能获得“足够长”的结果字符串。
-
谁说过花车?不是我。
-
@Lundin 我同意这个问题与 SO 几乎没有关系(尽管它可能与 Google 有关)。
标签: c string algorithm division