湖北网站建设模板下载,不懂技术与产品怎样做网站,怎样查看网站备案号,人们常说的蓝领是从事什么工作的思想#xff1a;对于回文数的判断方法#xff0c;最快的就是取其中一半的字符串长度#xff0c;为s#xff0c;然后将其进行翻转为s’ #xff0c;再把两者进行拼接即可保证是回文数#xff0c;这样子就解决了枚举所有回文数的问题。 注意点#xff1a;
要求必须是有效…思想对于回文数的判断方法最快的就是取其中一半的字符串长度为s然后将其进行翻转为s’ 再把两者进行拼接即可保证是回文数这样子就解决了枚举所有回文数的问题。 注意点
要求必须是有效日期注意闰年的2月份问题 代码 1判断所给字符串是不是回文数 a 取得前一半的数据将原来一半和翻转后的一半进行拼接即可确保是回文数 //transformer to stringstring s to_string(num),t to_string(num);//翻转其中一个reverse(t.begin() ,t.end());st;//S一定为回文数(b)判断日期是不是有效的 int y stoi(s.substr(0,4)),mstoi(s.substr(4,2)),d stoi(s.substr(6,2));//取出年月日if(y%4000||(y%40y%100!0))//如果是闰年month[1]29;elsemonth[1]28;//接着判断月份是否超过12if(m1||m12)return -1;elsereturn s;全部代码
string check1(int num)
{//transformer to stringstring s to_string(num),t to_string(num);//翻转其中一个reverse(t.begin() ,t.end());st;int y stoi(s.substr(0,4)),mstoi(s.substr(4,2)),d stoi(s.substr(6,2));//取出年月日if(y%4000||(y%40y%100!0))//如果是闰年month[1]29;elsemonth[1]28;//接着判断月份是否超过12if(m1||m12)return -1;elsereturn s;
}常见函数
to_string()//int转为字符串
reverse()//字符翻转
substr(0,4)//0是指起点位置4是指复制4个即从0号字符开始复制四个作为返回值2判断是不是ABABBABA类型的回文数
//判断是否是ABABBABA类型的回文数
string check2(int num)
{//transformer to stringstring s to_string(num),t to_string(num);//翻转其中一个reverse(t.begin() ,t.end());st;if(s[0]s[2]s[1]s[3])return s;elsereturn -1;}
整个项目工程如下 huiwen.cpp // Created by HP on 2024/1/7.
//判断是否是回文数
#include huiwen_number.hint date;
int month[12]{31,28,31,30,31,30,31,30,31,30,31,30};//初始化每月天数
/*------------------- 判断是否是一个回文数---------------------* 判断回文数只需要判断前半部分是不是回文数然后翻转拼接即可**
*///判断日期是否合法
string check1(int num)
{//transformer to stringstring s to_string(num),t to_string(num);//翻转其中一个reverse(t.begin() ,t.end());st;int y stoi(s.substr(0,4)),mstoi(s.substr(4,2)),d stoi(s.substr(6,2));//取出年月日if(y%4000||(y%40y%100!0))//如果是闰年month[1]29;elsemonth[1]28;//接着判断月份是否超过12if(m1||m12)return -1;elsereturn s;
}
//判断是否是ABABBABA类型的回文数
string check2(int num)
{//transformer to stringstring s to_string(num),t to_string(num);//翻转其中一个reverse(t.begin() ,t.end());st;if(s[0]s[2]s[1]s[3])return s;elsereturn -1;}
huiwen.h
//
// Created by HP on 2024/1/7.
//
#include iostream
#include string
using namespace std;
#include algorithm
#ifndef HUIWEN_NUMBER_H
#define HUIWEN_NUMBER_H
extern int date;
extern int month[12];//初始化每月天数
string check1(int num);
string check2(int num);
#endif //CHAPTER1_HUIWEN_NUMBER_H
main.cpp
#include iostream
#include huiwen_number.h
using namespace std;int main()
{
string ans1;
/* -------------------判断是否是回文数的蓝桥杯题目---------------------*/
cout请你输入一个日期endl;
cin date;//date回文.h文件中有定义了
for(int idate/10000;;i)
{if(check1(i)-1||check1(i) to_string(date))continue;else{if(ans1)ans1 check1(i);if(check2(i)!-1){coutans1\ncheck2(i)endl;break;}}}return 0;}
CMakelist.txt
cmake_minimum_required(VERSION 3.26)
project(chapter1)set(CMAKE_CXX_STANDARD 17)add_executable(chapter1 main.cpphuiwen_number.cpphuiwen_number.h)