/*
回文日期
*/
#include<bits/stdc++.h>
using namespace std;
int days[13] = {0,31,28,31,30,31,30,31,31,31,30,31,30};
// 判断回文数的简便方法,但是8位置reverse貌似有点TLE了
bool check_valid(int x) {
string s = to_string(x);
string temp = s;
reverse(temp.begin(),temp.end());
return s == temp;
}
bool check_data(int x) {
int year = x / 10000;
int month = x % 10000 /100;
int day = x % 10000 % 100;
if(day == 0) return false;
if(!day|| ! month|| month >= 13) return false;
int is_run = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
if(is_run) {
days[2] = 29;
} else {
days[2] = 28;
}
if(days[month] < day) return false;
return true;
}
=========== 以数组的方式把符合条件的日期以days[i] 方式写入文件 =====
// 然后直接复制到代码中,通过遍历比较即可
void print_data() {
freopen("F:\\data.txt","w",stdout);
ifstream file("F:\\out.txt");
vector<string> days;
string line;
if (file.is_open()) {
while (getline(file, line)) {
days.push_back(line);
}
file.close();
}
for(int i = 0;i < days.size();i ++) {
cout << "days[" << i << "] = " << days[i] << endl;
}
fclose(stdout);
}
int main() {
print_data();
}
=============== 将符合条件的日期写入文件 ===========
//int main() {
// freopen("F:\\out.txt","w",stdout);
// freopen("F:\\in.txt","r",stdin);
// ios::sync_with_stdio(0);
// cin.tie(0);
// cout.tie(0);
// int data1, data2,res = 0;
// cin >> data1 >> data2;
//// cout << data1 << data2;
// for(int i = data1; i <= data2; i ++) {
// if(check_data(i) && check_valid(i)) {
// cout << i << endl;
// res ++;
// }
// }
// cout << res;
// return 0;
//}
//int main()
//{
// int a,b;
//// freopen("F:\\in.txt","r",stdin); //输入重定向,输入数据将从D盘根目录下的in.txt文件中读取
// freopen("F:\\out.txt","w",stdout); //输出重定向,输出数据将保存在D盘根目录下的out.txt文件中
// while(cin>>a>>b) {
// cout<<a+b<<endl; // 注意使用endl
// }
// fclose(stdin);//关闭重定向输入
// fclose(stdout);//关闭重定向输出
// return 0;
//}