切換
舊版
前往
大廳
主題

ZeroJudge - e566: 10190 - Divide, But Not Quite Conquer! 解題心得

Not In My Back Yard | 2019-12-17 22:04:25 | 巴幣 0 | 人氣 430

題目連結:


題目大意:
給定兩非負整數 n 、 m (皆小於 2000000000)。現有一數列 a,其有元素 a[1] = n 、a[2] = a[1] ÷ m 、 a[3] = a[2] ÷ m 、…… 、a[k] = 1 。

而 a 必須遵守以下規則:
a[i] 必須可被 m 整除(1 ≦ i < k);
a[1] > a[2] > …… > a[k] 。

試問,對於整數對 n 、m  ,其產生的數列 a 是否遵守規則。如果是,請輸出數列 a 的內容;如果不是輸出「Boring!」。



範例輸入:
125 5
30 3
80 2
81 3


範例輸出:
125 25 5 1
Boring!
Boring!
81 27 9 3 1


解題思維:
先判斷是否 n ≦ 1 或是 m ≦ 1 ,這些情況會直接導致「Boring!」的狀態。

接著,試著產生數列 a。若中途有任何元素無法被 m 整除,就跳出。倘若數列 a 的最後一項是 1 ,則代表這數列正常(唯一一個可以是不被 m 所整除的),所以輸出其內容;如果最後一項不是 1 ,則代表有其他的元素不被 m 整除,因此輸出「Boring!」。

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

創作回應

相關創作

更多創作