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 –
「數字號碼」是指用十進制數字顯示的數字嗎?你在這裏的意思是「有限」和「有限」嗎?你的意思是有限或無限多的小數位 - 即。終止還是重複? –