ETH官方钱包

前往
大廳
主題

ZeroJudge - f707: 幸運(yùn) 7 (Lucky Seven) 解題心得

Not In My Back Yard | 2021-04-03 00:00:15 | 巴幣 0 | 人氣 643

題目連結(jié):


題目大意:
有個(gè)村落有著特別的數(shù)字比較方式:
可被 7 整除的數(shù)字視為比不能被 7 整除的數(shù)字還要來得「大」,如 140 「大於」 52;
可被 7 整除的數(shù)字中,除以 70 的餘數(shù)較大者視為較「大」,如 28「大於」 14;
不可被 7 整除的數(shù)字中,除以 77 的餘數(shù)較小視為較「大」,如 15 比 16 、 68 還要「大」。

現(xiàn)在輸入只有一列,該列給定若干個(gè)正整數(shù)(皆介於 1 ~ 100000 之間),以一個(gè)「0」作結(jié)(此數(shù)不納入結(jié)果範(fàn)圍內(nèi))。試問給定的那些正整數(shù)中何者最「大」?如果有多個(gè)數(shù)字一樣大,則輸出給定順序中較前面的。



範(fàn)例輸入:
範(fàn)例輸入 #1
7 14 28 0

範(fàn)例輸入 #2
7 77 777 0

範(fàn)例輸入 #3
52 140 0

範(fàn)例輸入 #4
15 16 68 0


範(fàn)例輸出:
範(fàn)例輸出 #1
28

範(fàn)例輸出 #2
7

範(fàn)例輸出 #3
140

範(fàn)例輸出 #4
15


解題思維:
跟平常找最大值的題型基本一樣,只是比較本題比較數(shù)字的「大小」之條件跟別的題目不同。按照題目所述:
現(xiàn)有兩數(shù) a 、 b,
當(dāng) a % 7 == 0 且 b % 7 != 0 時(shí),a > b;
當(dāng) a % 7 == 0 且 b % 7 == 0 且 a % 70 > b % 70 時(shí),a > b;
當(dāng) a % 7 != 0 且 b % 7 != 0 且 a % 77 < b % 77 時(shí),a > b。

而上面 a 、 b 互換便可以得到 b > a 時(shí)的情形。剩下的就是 a == b 之情況。




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

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作