编写一个程序,作为分数的输入分子和分母,并确定它们的重复周期

时间:2015-06-29 16:41:28

标签: algorithm

例如:

76/25 = 3.04(0)    1 =重复周期中的位数

5/43 = 0.(116279069767441860465)    21 =重复周期中的位数

1/397 = 0.(00251889168765743073047858942065491183879093198992 ...)    99 =重复周期中的位数

1 个答案:

答案 0 :(得分:0)

这可能是一个丑陋的解决方案,但它应该有效:

  • 使用最大公约数(gcd)简化分数 - 这是可选的,仅用于简化计算。
  • 做一个纸笔分工。一旦分裂遇到重复的余数,你就可以中断,因为在此之后数字会重复。例如:

    5 / 27 = 0.185... 50 <------------------------------| -27 -> (1) | 230 | -216 -> (8) | 140 | -135 -> (5) | 50 <-------- same remainer as here, so we can break off -27 -> (1)

对不起那个丑陋的ASCII-“艺术”。