2017第八屆藍橋杯 01 外星日曆(java)
阿新 • • 發佈:2019-02-03
標題:外星日曆
某星系深處發現了文明遺蹟。
他們的計數也是用十進位制。
他們的文明也有日曆。日曆只有天數,沒有年、月的概念。
有趣的是,他們也使用了類似“星期”的概念,
只不過他們的一個星期包含了9天,
為了方便,這裡分別記為: A,B,C....H,I
從一些資料上看到,
他們的23日是星期E
他們的190日是星期A
他們的343251日是星期I
令人興奮的是,他們居然也預見了“世界末日”的那天,
當然是一個很大很大的數字
651764141421415346185
請你計算一下,這遙遠的一天是該文明的星期幾?
你需要提交的是一個大寫字母,表示該文明的星期幾,
某星系深處發現了文明遺蹟。
他們的計數也是用十進位制。
他們的文明也有日曆。日曆只有天數,沒有年、月的概念。
有趣的是,他們也使用了類似“星期”的概念,
只不過他們的一個星期包含了9天,
為了方便,這裡分別記為: A,B,C....H,I
從一些資料上看到,
他們的23日是星期E
他們的190日是星期A
他們的343251日是星期I
令人興奮的是,他們居然也預見了“世界末日”的那天,
當然是一個很大很大的數字
651764141421415346185
請你計算一下,這遙遠的一天是該文明的星期幾?
你需要提交的是一個大寫字母,表示該文明的星期幾,
不要填寫任何多餘的內容。
結果:
G
思路:
其實這道題只需要使用電腦的計算器就行了。。(簡單點)。。
開啟計算器,檢視,科學型,把651764141421415346185複製上去,再除以9,結果為72418237935712816242.77777777777。
餘數的數值代表著結果:1:A, 2:B, 3:C, 4:D, 5:E, 6:F, 7:G, 8:H, 0:I
程式碼如下:(可以使用BigInteger操作大整數)
import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { char[] c = {'I','A','B','C','D','E','F','G','H'}; BigInteger b1 = new BigInteger("651764141421415346185"); BigInteger b2 = new BigInteger("9"); BigInteger yu = b1.mod(b2); for(int i=0;i<c.length;i++){ if(i==yu.intValue()){ System.out.println(c[i]); } } } }