回文日期 19物聯網張春

2021-10-16 08:53:29 字數 1577 閱讀 3909

【問題描述】

2023年春節期間,有乙個特殊的日期引起了大家的注意:2023年2月2日。因為如果將這個日期按「yyyymmdd」的格式寫成乙個8位數是20200202,恰好是乙個回文數。我們稱這樣的日期是回文日期。有人表示20200202是「千年一遇」的特殊日子。對此小明很不認同,因為不到2年之後就是下乙個回文日期:20211202即2023年12月2日。也有人表示20200202並不僅僅是乙個回文日期,還是乙個ababbaba型的回文日期。對此小明也不認同,因為大約100年後就能遇到下乙個ababbaba型的回文日期:21211212即2023年12月12日。算不上「千年一遇」,頂多算「千年兩遇」。給定乙個8位數的日期,請你計算該日期之後下乙個回文日期和下乙個ababbaba型的回文日期各是哪一天。

【輸入格式】

輸入包含乙個八位整數n,表示日期。

【輸出格式】

輸出兩行,每行1個八位數。第一行表示下乙個回文日期,第二行表示下乙個ababbaba型的回文日期。

【樣例輸入】

20200202
【樣例輸出】

20211202

21211212

【評測用例規模與約定】

對於所有評測用例,10000101 <= n <= 89991231,保證n是乙個合法日期的8位數表示。

題解注意:

從後一天開始判斷

日期的限制;平年閏年的判定。

#include

#include

#include

using

namespace std;

int m[13]

=;bool

isyear

(int year)

bool

judgedate

(int year,

int month,

int day)

//日期特判:閏年的二月份if(

isyear

(year)

&& month ==2)

//日期判斷

return day <= m[month];}

intmain()

int year = a[0]

*1000

+a[1]*

100+a[2]

*10+a[3];

int month = a[4]

*10+a[5];

int day = a[6]

*10+a[7];

if(!judgedate

(year,month,day)

)//回文

if(a[0]

== a[7]

&& a[1]

== a[6]

&&a[2]

== a[5]

&&a[3]

== a[4]

)//abab形式

if(a[0]

== a[2]

&& a[1]

== a[3]

&& a[0]

!=a[1]

)}}return0;

}

誰先倒 19物聯網張春

划拳是古老中國酒文化的乙個有趣的組成部分。酒桌上兩人划拳的方法為 每人口中喊出乙個數字,同時用手比劃出乙個數字。如果誰比劃出的數字正好等於兩人喊出的數字之和,誰就輸了,輸家罰一杯酒。兩人同贏或兩人同輸則繼續下一輪,直到唯一的贏家出現。下面給出甲 乙兩人的酒量 最多能喝多少杯不倒 和划拳記錄,請你判斷...

馬的遍歷 19物聯網張春

題目描述 有乙個n m的棋盤 1一行四個資料,棋盤的大小和馬的座標 輸出格式 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入輸出樣例 輸入 1 3 3 1 1輸出 1 0 3 2 3 1 1 2 1 4 include include include inc...

7 2 詞典 15分 19物聯網張春

7 2 詞典 15分 你剛從滑鐵盧搬到了乙個大城市,這裡的人們講一種難以理解的外語方言。幸運的是,你有一本字典來幫助你理解它們。輸入格式 輸入第一行是正整數n和m,後面是n行字典條目 最多10000條 然後是m行要翻譯的外語單詞 最多10000個 每乙個字典條目都包含乙個英語單詞,後面跟著乙個空格和...