查看原题
只过了70分,剩下都“WA”了
求大佬反馈
#include <bits/stdc++.h>
using namespace std;
bool hw(int n) {
int s = 0, m = n;
while (n) {
s = s * 10 + n % 10;
n /= 10;
}
return s == m;
}
bool pn(int n) {
int y = n / 10000;
return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
bool pd(int n) {
int y = n / 10000;
int m = n / 100 % 100;
int d = n % 100;
if (m < 1 || m > 12) return 0;
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return d <= 31;
case 4:
case 6:
case 9:
case 11:
return d <= 30;
case 2:
if (pn(y) && d == 29 || !pn(y) && d == 28 ) return 1;
else return 0;
}
return false;
}
int main() {
int n, m, cnt = 0;
cin >> n >> m;
for (int i = n; i <= m; i++) {
if (hw(i) && pd(i)) cnt++;
}
cout << cnt << endl;
return 0;
}