2017-05-13 68 views
1

我正在使用C++的Rational数字类。 有理数由两个int(分子和分母)定义。 我想正确显示它作为数字号码。现在,我确定这个数字是“有限的”还是有限的数字有理数。显示不受限制的有理数由两个整数定义

这里是一个小的伪代码来说明:

define print_rational(num, denom): 
    if(isUnlimited(num, denom): 
     ? 
    else: 
     //"limited" rational, no problem for them 

我想是这样显示无限数量:打印一个时间repetitives数字,然后“...”(例如:1/3 - > 0.3 ...,1/11 - > 0.09 ...)

那么,有没有一种算法来找到将在有理数中重复的数字块?

+1

长分工由一系列有商和余数的分部工作。当相同的剩余物第二次弹出时(因为它在鸽子洞原理中必须是0和1 - 1之间),过程循环和相同的块重复。因此,它本质上是一个周期检测的问题。 –

+1

我找到了同样的问题。 https://softwareengineering.stackexchange.com/questions/192070/what-is-a-efficient-way-to-find-repeating-decimal –

+0

“数字号码”是指用十进制数字显示的数字吗?你在这里的意思是“有限”和“有限”吗?你的意思是有限或无限多的小数位 - 即。终止还是重复? –

回答