社区讨论

萌新求助,玄关

P2010[NOIP 2016 普及组] 回文日期参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mhjswp3w
此快照首次捕获于
2025/11/04 07:58
4 个月前
此快照最后确认于
2025/11/04 07:58
4 个月前
查看原帖
QWQ
30pts:
CPP
#include<bits/stdc++.h>

using namespace std;

int a, b;
int w[233];
bool huiwen(int x) {
	int cnt = 0;
    while(x) {
        cnt ++;
        w[cnt] = x % 10;
        x /= 10;
    }
    for(int i = 1 ; i <= 4 ; i ++) {
        if(w[i] != w[9 - i]) return 0;
    }
    return 1;
}
int pingnian[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 32};
int runnian[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 32};

bool pd(int x) {
    if(x % 400 == 0) return 1;
    if(x % 100 != 0 && x % 4 == 0) return 1;
    else return 0; 
}
bool hefa(int x) {
    int m = x % 100 / 100;
    int d = x % 100;
    int y = x / 10000;
    bool run = pd(y);
    if(m <= 12 && m >= 1) {
        if(run == 1 && d <= runnian[m]) return 1;
        if(run == 0 && d <= pingnian[m]) return 1;
    }
    return 0;
}
int main() {
    cin >> a >> b;
    int ans = 0;
    for(int i = a ; i <= b ; i ++) {
        if(hefa(i)) {
            if(huiwen(i)) {
                ans ++;
                cout << i;
            }
        }
    }
    cout << ans << endl;
    return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...