博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回文日期
阅读量:772 次
发布时间:2019-03-24

本文共 1407 字,大约阅读时间需要 4 分钟。

回文日期


Time limit:1s
Memory limit:256MB

在这里插入图片描述

在这里插入图片描述


去年比赛的时候以为前两个编程题是必满分的,后面大题不会做还提前交卷,出考场后才反应过来,我没有判断一个数是否为合法日期,也就是我第一次做直接找了个回文数和ababbaba回文数。

一定要注意判断是否为合法日期。

ac代码:
#include
using namespace std;int n;int month[13] = {
0,31,28,31,30,31,30,31,31,30,31,30,31}; //每月的天数,2月后续特殊处理int f1,f2; //标记回文日期和ababbaba型回文日期int x[10]; //存储n的拆分bool legal(){
//判断n是否为合法日期 int d = n % 100,m = n / 100 % 100,y = n / 10000; if(y % 4 == 0 && y % 100 != 0 || y % 400 == 0) month[2] = 29; else month[2] = 28; if(m <= 12 && m >= 1 && d >= 1 && d <= month[m]) return true; return false;}bool palin(){
//判断是否是回文日期 int m = n; for(int i = 1;i <= 8;++i) x[i] = m % 10,m /= 10; for(int i = 1;i <= 4;++i) if(x[i] != x[9 - i]) return false; return true;}bool abab(){
//判断是否是ababbaba型日期 if(x[1] == x[3] && x[1] == x[6] && x[1] == x[8] && x[2] == x[4] && x[2] == x[5] && x[2] == x[7] && x[1] != x[2]) return true; return false;}int main(){
cin>>n; for(++n;!f2;++n) if(legal()){
//是合法日期 if(palin()){
//是回文日期 if(!f1) //是否是第一个回文日期 f1 = n; if(abab()) //是ababbaba型日期 f2 = n; } } cout<
<<"\n"<

转载地址:http://gcakk.baihongyu.com/

你可能感兴趣的文章