回文日期串是指乙個由年(由四個字元組成)、月(由兩個字元組成)、日(由兩個字元組成)組成的八位字串,同時它又是乙個回文串。
乙個合法的回文日期串需要保證逆序後其年、月、日也必須是合法的。
例如:20011002和20200202是合法的回文日期串,而20088002和20000002則不是合法的回文日期串。
請輸入乙個起始日期和乙個結束日期,統計兩個日期之間(包括起始日期和結束日期)有多少個合法的回文日期串?
輸入兩行,每行乙個日期。輸入保證年、月、日均合法,且年為大於等於1000的四位數。
兩個日期之間(包括起始日期和結束日期)合法的回文日期串的數量。
2000-01-01
3000-12-31
思路:每一年最多隻可能有乙個回文日期串,所以用遍歷年份的方式找回文日期。
遇到的問題:最初我a,b開的長度都是10,測試的時候發現輸出的字串a為空。是因為字串以』\0』為結束符,而我輸入剛好十個字元,沒有空間讓其自動加上結束符。
#include
using
namespace std;
intmain()
;int p[13]
=;int ans=0;
scanf
("%s"
,a);
scanf
("%s"
,b);
//將輸入的字串轉換為八位數字
for(
int i=
0;i<
10;i++)}
cn=c/
10000
;for
(int i=
0;i<
10;i++)}
dn=d/
10000
;for
(int i=cn;i<=dn;i++
)else
}printf
("%d\n"
,ans)
;}
HNUCM OJ T1953 C語言 回文日期串
題目描述 回文日期串是指乙個由年 由四個字元組成 月 由兩個字元組成 日 由兩個字元組成 組成的八位字串,同時它又是乙個回文串。乙個合法的回文日期串需要保證逆序後其年 月 日也必須是合法的。例如 20011002和20200202是合法的回文日期串,而20088002和20000002則不是合法的回...
NC16438 回文日期
牛客網 題目要求統計回文日期,相當於回文字串,可以考慮使用遍歷 如果固定年份,對月和日進行遍歷再判斷是否回文效率太低,可以直接遍歷月和日,根據月和日構造回文的日期,這樣最多只有366種可能。列出所有的回文日期以後再判斷是否再輸入的區間之內即可 include using namespace std ...
P2010 回文日期
呃呃呃,這個題我寫的 比較繁瑣,不過自認為還是很容易理解的。輸入的是兩個日期,如果把它看成乙個數的話,資料範圍也就是10000000 99999999 而且在其中很多數是不會出現的 必須是真實存在的日期 如果是從輸入的第乙個數到第二個數迴圈一次的話,1s的時間限制也是能過的,迴圈的時候,要判斷這個數...