news 2026/10/20 22:47:02

C++课后习题训练记录Day67

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++课后习题训练记录Day67

1.练习项目:

题目描述

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示 20200202 是 “千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。

也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,顶多算 “千年两遇”。

给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。

输入描述

输入包含一个八位整数 N,表示日期。

对于所有评测用例,10000101≤N≤89991231,保证 N 是一个合法日期的 8 位数表示。

输出描述

输出两行,每行 1 个八位数。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型的回文日期。

2.选择课程

在蓝桥云课中选择题库,选择题号498并开始练习。

3.开始练习

(1)源码:
#include<bits/stdc++.h>
using namespace std;
int s2i(string s)
{
int res=0;
for(const auto&i:s){
res=res * 10 + i - '0';
}
return res;
}
string i2s(int x,int w){
string res;
while(x){
res+=(x%10)+'0';
x/=10;
}
while(res.length()<w){
res+='0';
}
reverse(res.begin(),res.end());
return res;
}
bool isLeapyear(int year)
{
return (year%4==0&&year%100!=0)||(year%400==0);
}
bool isok(int year,int month,int day)
{
int days[]={0,31,28,31,30,31,30,31,31,30,31};
if(isLeapyear(year)){
days[2]=29;
}
return day<=days[month];
}
bool ispa(string s)
{
for(int i=0;i<s.length()/2;i++){
if(s[i]!=s[s.length()-1-i]){
return false;
}
}
return true;
}
bool ispa2(string s)
{
if(!ispa(s)){
return false;
}
return s[0]==s[2]&&s[1]==s[3];
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
string s;
cin>>s;
int year=s2i(s.substr(0,4)),month=s2i(s.substr(4,2)),day=s2i(s.substr(6,2));
bool ans1=false,ans2=false;
for(int i=year;i<=9999;i++){
for(int j=1;j<=12;j++){
if(i==year&&j<month){
continue;
}
for(int k=1;k<=31;k++){
if(i==year&&j==month&&k<=day){
continue;
}
if(!isok(i,j,k)){
continue;
}
string date=i2s(i,4)+i2s(j,2)+i2s(k,2);
if(!ans1&&ispa(date)){
cout<<date<<'\n';
ans1=true;
}
if(!ans2&&ispa2(date)){
cout<<date<<'\n';
ans2=true;
}
}
}
}
return 0;
}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 15:00:00

彼得林奇的“家庭股票“在财富传承中的角色

彼得林奇的“家庭股票”在财富传承中的角色关键词&#xff1a;彼得林奇、家庭股票、财富传承、投资策略、长期价值摘要&#xff1a;本文深入探讨了彼得林奇所提出的“家庭股票”概念在财富传承中的重要角色。首先介绍了相关背景&#xff0c;包括目的、预期读者、文档结构和术语…

作者头像 李华
网站建设 2026/10/16 10:57:59

大数据领域分布式计算的性能优化策略

大数据分布式计算性能优化&#xff1a;从“堵车”到“通途”的系统调校指南 关键词 分布式计算、性能优化、数据本地化、资源调度、Shuffle优化、并行度调整、容错机制 摘要 当你用分布式集群处理100TB日志时&#xff0c;有没有遇到过这样的场景&#xff1a;任务卡了6小时还没跑…

作者头像 李华
网站建设 2026/10/17 20:15:01

吐血推荐9个AI论文写作软件,专科生毕业论文轻松搞定!

吐血推荐9个AI论文写作软件&#xff0c;专科生毕业论文轻松搞定&#xff01; AI工具助力论文写作&#xff0c;专科生也能轻松应对 在当前的学术环境中&#xff0c;AI工具已经成为许多学生不可或缺的助手&#xff0c;尤其是在论文写作方面。对于专科生来说&#xff0c;撰写一篇符…

作者头像 李华
网站建设 2026/10/18 5:36:51

第五届AIGC开发者大会年度对话:超级算力如何打造超级产品?

作者&#xff1a;王聪彬 现如今&#xff0c;算力正从技术底座走向产品前台&#xff0c;开始塑造产品形态和应用边界。随着优质算力在云、边、端环境中普及&#xff0c;企业和开发者开始关注如何将算力、高性能计算能力和软件平台结合起来&#xff0c;把技术潜力转化为可用、可落…

作者头像 李华