P13929 [蓝桥杯 2022 省 Java B] 山 题解

缩减一下题目的意思,问区间 [2022,2022222022] 有多少个数是回文数并且先单调不减,后单调不增。

因为有这两条条件,我们可以得知在判断时只用判断前半段的每个数是不是和对面相应的位置相等,以及是否单调不减。

为什么不用看后半段是否单调不增呢?因为想要符合要求,还得是个回文数,因为是回文数,所以从中间截开,分成前后两段。

如果前半段是单调不减的,那么后半段就是单调不增的,除非这个数不是回文数,那么我们就会判断出,这个数不符合要求。

嗯,可能是这个蒟蒻太蒟蒻了,想不到直接计算的数学的玄学的非常巨的做法,于是我直接从 2022 枚举到 2022222022 。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int a[20];
int main(){
	int ans=0;
	for(int i=2022;i<=2022222022;i++){//大力枚举
		int x=i,cs=0;//查找i有几位
		while(x>0){
			a[++cs]=x%10;//记录i的每一位是多少
			x/=10;
		}
		bool cc=0;//判断小 bool
		for(int i=1;i<=cs/2;i++){//枚举到一半就行
			if(a[i]!=a[cs-i+1]||a[i]>a[i+1]){
//如果这数他不回文或者不是按单调不减的顺序排列的
				cc=1;//废了
				break;//直接退出
			}
		}
        if(!cc){//如果一切顺利
    		ans++;//数量多一
    	}
    }
	cout<<ans;//输出我们的答案
	return 0;
}

当然啦,这个代码并不会 AC ,会 TLE ,于是我们就只能耐心的等待他得出的结果,然后直接输出。

相关推荐
利刃大大4 分钟前
【c++中间件】redis介绍 && redis-plus-plus库使用
c++·redis·中间件
前端小L6 分钟前
图论专题(二十一):并查集的“工程应用”——拔线重连,修复「连通网络」
数据结构·算法·深度优先·图论·宽度优先
永不停转9 分钟前
关于 QGraphicsItemGroup 内部项目发生变化后group重新定位的问题
c++·qt
88号技师17 分钟前
2025年9月一区SCI-孤行尺蠖觅食优化算法Solitary Inchworm Foraging-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
前端小L35 分钟前
图论专题(二十五):最小生成树(MST)——用最少的钱,连通整个世界「连接所有点的最小费用」
算法·矩阵·深度优先·图论·宽度优先
前端小L38 分钟前
图论专题(二十三):并查集的“数据清洗”——解决复杂的「账户合并」
数据结构·算法·安全·深度优先·图论
CoovallyAIHub1 小时前
破局红外小目标检测:异常感知Anomaly-Aware YOLO以“俭”驭“繁”
深度学习·算法·计算机视觉
IT永勇1 小时前
C++设计模式-装饰器模式
c++·设计模式·装饰器模式
Murphy_lx1 小时前
std_ofstream
c++
点云SLAM1 小时前
图论中邻接矩阵和邻接表详解
算法·图论·slam·邻接表·邻接矩阵·最大团·稠密图