2017-05-13 22 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

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

回答