洛谷 [蓝桥杯 2020 省 AB2] 回文日期

2024-02-22 18:28

本文主要是介绍洛谷 [蓝桥杯 2020 省 AB2] 回文日期,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <iostream>
using namespace std;int d[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};bool is_valid(int i){int year = i / 10000;i = i % 10000;int month = i / 100;i = i % 100;int day = i;if ( (year%4 == 0 && year%100!= 0) || (year%400==0) ){ //闰年 if ( month==2 && day > 29){return false;}}if (month > 13 || month == 0){return false;}if(day > d[month] || day == 0){return false;}return true;
}
bool is_hui(int i){int year = i / 10000;i = i % 10000;int month = i / 100;i = i % 100;int day = i;int i_1 = month % 10;int i_2 = month / 10;int sum_1 = i_1*10 + i_2;int i_3 = day % 10;int i_4 = day / 10;int sum_2 = i_3*10 + i_4;if (sum_1 + sum_2*100 == year){return true;}return false;
}
bool is_ab(int i){int i_1 = i % 10;i = i / 10;int i_2 = i % 10;i = i / 10;int i_3 = i % 10;i = i / 10;int i_4 = i % 10;i = i / 10;int i_5 = i % 10;i = i / 10;int i_6 = i % 10;i = i / 10;int i_7 = i % 10;i = i / 10;int i_8 = i;if ( (i_1 == i_3) && (i_3 == i_6) && (i_6 == i_8) ){if ( (i_2 == i_4) && (i_4 == i_5) && (i_5 == i_7) ){return true;}}return false;
}
int main (){int n;cin>>n;int flag = 0;for (int i = n+1;i < 99999999;i++){if(is_valid(i) && is_hui(i)){cout<<i<<endl;break;}}for (int i = n+1;i < 99999999;i++){if(is_valid(i) && is_ab(i)){cout<<i;break;}}return 0;
} 

在这里插入图片描述

这篇关于洛谷 [蓝桥杯 2020 省 AB2] 回文日期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736120

相关文章

csu1328(近似回文串)

题意:求近似回文串的最大长度,串长度为1000。 解题思路:以某点为中心,向左右两边扩展,注意奇偶分开讨论,暴力解即可。时间复杂度O(n^2); 代码如下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring>#include<string>#inclu

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

javaScript日期相加减例子

当前时间加上2天 var d = new Date(“2015-7-31”); d.setDate(d.getDate()+2); var addTwo=d.getFullYear()+”年”+(d.getMonth()+1)+”月”+d.getDate()+”日”; “控制台输出===============”+”当前日期加2天:”+addTwo; 使用这种方法,月份也会给你计算.

linux下修改系统日期与时间

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

时间日期与时间戳转换(Linux C)

本文主要学习三个知识点,第一是UTC时间、GMT时间的概念;第二是在Unix环境下UTC时间与时间戳的转换;第三是在C语言中如何修改时区。 本文参考了《UNP》以及 http://blog.csdn.net/foxir/article/details/43916601 http://blog.csdn.net/ljafl9988/article/details/16847935 一、

Java中计算两个日期间隔多少天

String dbtime1 = "2017-02-23";  //第二个日期 String dbtime2 = "2017-02-22";  //第一个日期 //算两个日期间隔多少天 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = format.parse(dbtime1); Date dat

实现日期往前或往后或跳转到指定月份或天数

//月份跳转 //初始日期 String yearMonth = "201702"; String yearMonthStr = ""; //往前(负数)或往后(正数) int add = -2; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); Date source = sdf.parse(yearMonth); Cal

高精度计算(代码加解析,洛谷p1601,p1303)除法待更新

目录 高精度加法 高精度减法 高精度乘法 高精度加法 我们知道在c++语言中任何数据类型都有一定的表示范围。当两个被加数很大时,正常加法不能得到精确解。在小学,我们做加法都采用竖式方法。那么我们也只需要按照加法进位的方式就能得到最终解。 8 5 6+ 2 5 5-------1 1 1 1 加法进位: c[i] = a[i] + b[i];if(c[i] >=