牛客训练30.A(基础)
https://ac.nowcoder.com/acm/contest/216/A?&headNav=acm
计算两个日期之间的满足回文的日期
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int mouths[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main()
{
int t;
scanf("%d", &t);
while(t--) {
int sy, sm, sd;
int ey, em, ed;
scanf("%d-%d-%d", &sy, &sm, &sd);
scanf("%d-%d-%d", &ey, &em, &ed);
int s = sy * 10000 + sm * 100 + sd;
int t = ey * 10000 + em * 100 + ed;
int ans = 0;
for(register int i = 1; i <= 12; i++) {
for(register int j = 1; j <= mouths[i]; j++) {
int tmp = j % 10 * 1000 + j / 10 * 100 + i % 10 * 10 + i / 10;
tmp = tmp * 10000 + i * 100 + j;
if(tmp <= t && tmp >= s) ans++;
}
}
printf("%d\n", ans);
}
}
直接枚举月份日期满足的回文时间,如果该时间在题目所给范围内ans++