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 ...)
那么,有没有一种算法来找到将在有理数中重复的数字块?
长分工由一系列有商和余数的分部工作。当相同的剩余物第二次弹出时(因为它在鸽子洞原理中必须是0和1 - 1之间),过程循环和相同的块重复。因此,它本质上是一个周期检测的问题。 –
我找到了同样的问题。 https://softwareengineering.stackexchange.com/questions/192070/what-is-a-efficient-way-to-find-repeating-decimal –
“数字号码”是指用十进制数字显示的数字吗?你在这里的意思是“有限”和“有限”吗?你的意思是有限或无限多的小数位 - 即。终止还是重复? –