蓝桥杯每日一题20233.10.10

题目描述

回文日期 - 蓝桥云课 (lanqiao.cn)

题目分析

对于此题,我们最先想到的是暴力解法,将每一种情况经行循环查找,在查找的过程中记录下答案,回文日期就是字符串判断回文,ABABBABA型回文日期可以将回文经行特判从而确定

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int nx, ans, f1, f2;
string ans1, ans2;
bool is_ren(int n)
{
	if(n % 400 == 0 || (n % 100 != 0 && n & 4 == 0))return true;
	return false;
}
bool flag1(string s)
{
	int n = s.size();
	for(int i = 0; i < n / 2; i ++)
	{
		if(s[i] != s[n - i - 1])return false;
	}
	ans1 = s;
	return true;
}
bool flag2(string s)
{
	int n = s.size();
	for(int i = 0; i < n / 2; i ++)
	{
		if(s[i] != s[n - i - 1])return false;
	}
	if(s[0] == s[2] && s[2] == s[5] && s[5] == s[7] && s[1] == s[3] && s[3] == s[4] && s[4] == s[6] && s[0] != s[1])
	{
		ans2 = s;
		return true;
	}
	return false;
}
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> nx;
	//算出输入的年月日 
	int y = nx / 10000;
	int mo = nx / 100 % 100;
	int d = nx % 100;
	//从输入的年开始(2020是随意的数字) 
	for(int i = y; i <= 10000; i ++)
	{
		if(is_ren(i))m[2] = 29;
		else m[2] = 28;
		for(int j = 1; j <= 12; j ++)
		{
			for(int k = 1; k <= m[j]; k ++)
			{
				if(i == y && j == 1 && k == 1)//如果是刚进入循环的时候,因为此时当天不算故看下一天是哪一天 
				{
					if(d + 1 <= m[mo])//下一天不跨月 
					{
						j = mo;
						k = d + 1;
					}
					else if(mo + 1 <= 12)//下一天跨月不跨年 
					{
						j = mo + 1;
						k = 1;
					}
					else//下一天跨年 
					{
						i = y ++;
						j = 1;
						k = 1;
					}
				}
				//将这一天转为字符串进行判断 
				string s = "";
				s += to_string(i);
				if(j < 10)s += to_string(0);
				s += to_string(j);
				if(k < 10)s += to_string(0);
				s += to_string (k);
				if(ans1.size() != 8)flag1(s);
				if(ans2.size() != 8)flag2(s);
				if(ans1.size() == 8 && ans2.size() == 8)break;
			}
			if(ans1.size() == 8 && ans2.size() == 8)break;
		}
		if(ans1.size() == 8 && ans2.size() == 8)break;
	}
	cout << ans1 << '\n' << ans2;
	return 0;
}
相关推荐
穿条秋裤到处跑7 小时前
每日一道leetcode(2026.04.24):距离原点最远的点
算法·leetcode·职场和发展
EnCi Zheng7 小时前
S10-蓝桥杯 17822 乐乐的积木塔
职场和发展·蓝桥杯
笨蛋不要掉眼泪9 小时前
面试篇-java基础上
java·后端·面试·职场和发展
A_aspectJ10 小时前
如何抓住Java开发岗的市场红利?从需求端反推学习路径
java·开发语言·职场和发展
嘻嘻哈哈樱桃11 小时前
牛客经典101题题解集--二叉树
java·数据结构·python·算法·leetcode·职场和发展
菜菜的顾清寒14 小时前
力扣100(20)旋转图像
算法·leetcode·职场和发展
The Chosen One98514 小时前
算法题目分享(二分算法)
算法·职场和发展·蓝桥杯
酉鬼女又兒14 小时前
JavaLeetCode 第一题「两数之和」:从暴力枚举到一遍哈希表的正确与错误实现,详解HashMap核心知识点及常见陷阱
java·开发语言·数据结构·算法·leetcode·职场和发展·散列表
其实防守也摸鱼14 小时前
面试常问问题总结--渗透测试工程师方向
网络·sql·面试·职场和发展·xss·工具·owasp
菜菜的顾清寒15 小时前
力扣hot100(21)搜索二维矩阵 II
算法·leetcode·职场和发展