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

Math 显示由两个整数定义的有限有理数 我正在C++中使用一个有理数类。 有理数由两个int(分子和分母)定义。 我想把它正确地显示为数字。现在,我确定这个数字是一个“不受限制的”还是一个有限位数的有理数,math,digit,rational-number,Math,Digit,Rational Number,下面是一个小伪代码来说明: define print_rational(num, denom): if(isUnlimited(num, denom): ? else: //"limited" rational, no problem for them 我想这样显示无限数字:打印一次重复的数字,然后“…”(例如:1/3->0.3…,1/11->0.09…) 那么,是否有一种算法可以找到一个有理数中重复的数字块?将结果转换为字符串,然后应用于它。将结果转换

下面是一个小伪代码来说明:

define print_rational(num, denom):
   if(isUnlimited(num, denom):
       ?
   else:
       //"limited" rational, no problem for them
我想这样显示无限数字:打印一次重复的数字,然后“…”(例如:1/3->0.3…,1/11->0.09…)


那么,是否有一种算法可以找到一个有理数中重复的数字块?

将结果转换为字符串,然后应用于它。

将结果转换为字符串,然后应用于它。

长除法通过一系列带商和余数的除法工作。当相同的余数第二次弹出时(鸽子洞原理必须如此,因为它介于0和denom-1之间),过程循环,相同的块重复。因此,这本质上是一个周期检测的问题。我发现同样的问题得到了回答。“数字”是指用十进制数字表示的数字吗?你说的“不受限制”和“有限”是什么意思?你的意思是小数位数是有限位还是无限位,即终止还是重复?对不起,我的近似“英语数学”。数学和英语都不是我的专长!我得到了答案,我只需要有人提醒我长除法算法是存在的。我想我应该多读我的小学课程!一旦我完成了这个问题,我将发布我的代码作为答案来结束这个问题。长除法是由一系列带商和余数的除法组成的。当相同的余数第二次弹出时(鸽子洞原理必须如此,因为它介于0和denom-1之间),过程循环,相同的块重复。因此,这本质上是一个周期检测的问题。我发现同样的问题得到了回答。“数字”是指用十进制数字表示的数字吗?你说的“不受限制”和“有限”是什么意思?你的意思是小数位数是有限位还是无限位,即终止还是重复?对不起,我的近似“英语数学”。数学和英语都不是我的专长!我得到了答案,我只需要有人提醒我长除法算法是存在的。我想我应该多读我的小学课程!一旦我完成了这个问题,我会发布我的代码作为答案来结束它。