求助P2010 [NOIP2016 普及组] 回文日期
查看原帖
求助P2010 [NOIP2016 普及组] 回文日期
1044318
ZhangShuai2012楼主2024/10/16 21:24

查看原题

只过了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++;
	}
    //if(n==m && hw(n) && pd(n) && pn(n)) cnt=1;
	cout << cnt << endl;
	return 0;
}
2024/10/16 21:24
加载中...