当前位置: 首页 > news >正文

【回文日期——模拟】

题目

代码

#include <bits/stdc++.h>
using namespace std;
int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string done1 = "", done2 = "";
bool is_run(int y, int m)
{if(m != 2) return false;if (y % 400 == 0)return true;if (y % 100 && y % 4 == 0)return true;return false;
}
void Do(int y, int m, int d, int mode)
{string s = to_string(y);char a = s[0], b = s[1];if(mode == 2 && a == b) return;s += to_string(m / 10);s += to_string(m % 10);s += to_string(d / 10);s += to_string(d % 10);int l = 0, r = s.size() - 1;while (l < r){if (mode == 2 && l){if(s[l] != a && s[l] != b) return;else if(s[l] == a && s[l-1] != b) return;else if(s[l] == b && s[l-1] != a) return;}if (s[l++] != s[r--])return;}if (mode == 1)done1 = s;else if (mode == 2)done2 = s;
}
int main()
{string s;cin >> s;int y, m, d;string sy = s.substr(0, 4);y = stoi(sy);string sm = s.substr(4, 2);m = stoi(sm);string sd = s.substr(6, 2);d = stoi(sd);do{d++;if (d > month[m] + is_run(y, m)){d = 1;m++;}if (m > 12){m = 1;y++;}if (done1 == "")Do(y, m, d, 1);if (done2 == "")Do(y, m, d, 2);if (done1 != "" && done2 != "")break;}while(1);cout << done1 << '\n' << done2;
}


http://www.mrgr.cn/news/71031.html

相关文章:

  • C#对INI配置文件进行读写操作方法
  • 缓存工具类编写
  • Unity 实现界面拖拽功能的脚本,通过IDragHandler 实现
  • socket连接封装
  • 分布式系统稳定性建设-性能优化篇
  • 数字图像处理(2):Verilog基础语法
  • React的基础API介绍(一)
  • 第12课 二维数组(1)
  • 世界职院技能大赛视角下,高职高专技能人才高阶素养培育路径探究
  • CRM系统用户满意度调查:哪些品牌最受欢迎
  • 量化交易系统开发-实时行情自动化交易-3.4.1.4.A股衍生数据
  • Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了
  • 浅谈c++函数调用以及析构函数为虚函数的原因
  • 基于Ubuntu2410脚本搭建OpenStack-D版
  • 青训5_1112_01 小S的倒排索引(内置方法 set(a) set(b) 及sorted 排序)
  • No module named ‘torch.nn.attention‘
  • 【C++】C++基础知识
  • 期权懂|你知道场外个股期权该如何参与吗?
  • 微服务改造:踩过的坑!
  • 2. Sharding-JDBC广播表和绑定表操作
  • 阿里云Linux安装Docker服务报错问题
  • 【轻松远程处理图片:在线图片编辑工具Photopea群晖NAS部署解决方案】
  • 解决 C/C++ 中 “invalid use of incomplete type” 编译错误
  • 【前端】深入浅出的React.js详解
  • Spring Boot编程训练系统:深入设计与实现
  • 双指针算法的妙用:提高代码效率的秘密(3)