五、回文日期問題 ( 15分 )
回文數(或迴文數)是指一個像16461這樣對稱的數,即將這個數的數字按相反的順序重新排列後,所得到的數和原來的數一樣。這裡,「回文」是指正讀反讀都相同的單詞或句子。
日期的表示中包含年、月、日三部分,假設年以西元曆法表示固定為四位數字,月數與日期數部分若為小於10 (介於1到9之整數)則可以採用刪除或不刪除前導0的方式表示為1到9或01到09。例如,2017年1月2日可以表示為 201712, 2017012, 2017102, 20170102四種數字。從給定一個數字來看,20111102代表2011年11月2日,只代表一個日期。但數字2017102 可以代表2017年10月2日或代表2017年1月2日。數字2011102 可以代表2011年10月2日或2011年1月2日 。
設計一個程式,輸入四位數字代表西元年(介於1000到9999 之間),輸出該年度內所有可能產生回文數的日期與個數,不同日期所轉成的回文數雖相同但需要分別計算。例如2017102 可以代表2017年10月2日或代表2017年1月2日算兩次。此問題中,需要考慮閏年的影響,閏年定義為西元年份可以被4整除但不能被100整除則為閏年。若西元年份可以被100 整除(例如 1900)則必須同時被 400 整除才是閏年 (如2000)。
* 測資均為官方測資
* 為模擬正式競賽,WA 時 不公開正確答案!
* 加油~ !
輸入資料中第一列為一整數n,代表接下來有n組測試資料。
每組測試為一個介於1000與9999之間的數字。
輸出該年度回文日期的個數與所有回文日期(包含重複的回文日期,重複兩次須印出兩個),回文日期由小至大依序列出,各資料間以一個空格分開。
5 1111 1201 2017 1340 1010
4 111111 1111111 1111111 11111111 2 1201021 12011021 2 2017102 2017102 0 3 1010101 1010101 10100101
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
36768 | liaoweichen1 ... (M_SQRT) | e525 | 256 | 2023-08-07 22:08 | |
26553 | ck1090758@gl ... (peienwu) | e525 | 626 | 2021-08-13 14:09 |