c-将分数转换为字符串,并插入[]以重复部分
作者:互联网
面试题:
给定两个整数N(分子)和D(分母),返回字符串中的分数.如果分数重复,则将重复部分显示在括号中.
例:
输入:N = 1,D = 3
输出:0.[3]
例:
输入:N = 2,D = 5
产量:0.4
我的点子:
得到一个= N / D的双精度值.
对于小数点后的部分,将每个数字乘以x 10
在此过程中,如果发现重复,则记录索引并最后插入[].
对于小数点前的部分,将每个数字乘以/ 10
还有更好的主意吗?
谢谢
解决方法:
我会避免使用像瘟疫这样的双重病.由于精度有限,它不会给您正确的答案.坚持整数算法并模拟long division,跟踪其余部分.在分子中的数字用完后(因此您要调零),还应保留余数的历史记录,如果您看到历史记录中已有余数,则表明您已命中重复序列.然后,您可以构造带括号的输出部件. (当然,如果余数为零,则意味着答案是终止分数.)
标签:c-3,fractions,c,string,algorithm 来源: https://codeday.me/bug/20191013/1910832.html