前往
大廳
主題

ZeroJudge - f937: 循環節 解題心得

Not In My Back Yard | 2021-06-11 00:00:04 | 巴幣 0 | 人氣 211

題目連結:


題目大意:
輸入第一列給定一正整數 T ,代表有 T 筆測試資料,每筆佔一列。每列給定兩正整數 n 、 m (0 < n 、 m < 10000000),請找出 n ÷ m 的小數點後非循環部分以及循環部分各自的長度為何?



範例輸入:
2
2 61
1 22


範例輸出:
0 60
1 2


解題思維:
利用這題的想法便可以求得小數非循環以及循環節。

但是因為這題的記憶體限制比較緊,所以基本上不能將每個步驟「被除數」都儲存下其為第幾步出現(這需要整數陣列)。但是我們可以儲存當前的被除數「有沒有」出現過(這需要布林陣列)。

所以當出現先前出現過的被除數,則可以再跑一次直到目前的被除數再次地出現。此時便可以得出循環節長度跟非循環長度。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作