社区讨论
90分求助!!!
P2010[NOIP 2016 普及组] 回文日期参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lz0vsjrx
- 此快照首次捕获于
- 2024/07/25 14:17 2 年前
- 此快照最后确认于
- 2024/07/25 15:16 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
bool huiwen(int a){
string n = to_string(a);
int right, left;
left = 0;
right = n.size()-1;
bool x = 1;
while (left < right){
if (n[right] != n[left]){
x = 0;
break;
}
left++, right--;
}
return x;
}
bool runnian(int n){
if ((n%4 == 0 && n%100 != 0) || n%400 == 0){
return 1;
}else{
return 0;
}
}
int a, b, ans = 0;
int an, ay, ar;
int bn, by, br;
int yue[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
cin >> a >> b;
an = a/10000, ay = a/100%100, ar = a%100;
bn = b/10000, by = a/100%100, br = a%100;
for (int n = an; n <= bn; n++){
if (runnian(n) == 1){
yue[2] = 29;
}else{
yue[2] = 28;
}
for (int y = 1; y <= 12; y++){
if (n == an && y < ay) continue;
if (n == bn && y > by) break;
for (int r = 1; r <= yue[y]; r++){
if (n == an && y >= ay && r < ar) continue;
if (n == bn && y <= by && r > br) break;
int sum = n*10000+y*100+r;
if (huiwen(sum) == 1) ans++;
}
}
}
cout << ans;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...