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

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

这道题是2016年普及组的题,难度等级为普及—。

这道题仍然是个模拟题。有两种策略:1.枚举回文,看日期是否存在2.枚举日期,看是否是回文。显然,前者要快很多,并且准确。本蒟蒻第一次便使用了后者,bug频出,看了题解后想到了前者。并且在取位与字符串处理上出了问题qaq。最后被卡了几个数据点......

1.字符串中转int:-48即可。

2.调bug的时候可以规范输出来查错误。
3.模拟题一定要思考好for谁快。
4.模拟题思路一定要清晰,别先动键盘,先动笔,确定好有把握的策略。

伪代码:

string str1,str2;
int year1,year2;
int month1,month2;
int day1,day2;
int ans=0;
int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int rday[12]={31,29,31,30,31,30,31,31,30,31,30,31};
bool judge_r(int x){
if(x%400==0||(x%4==0&&x%10!=0)){
return true;
}
else return false;
}
int main(){
cin>>str1;
cin>>str2;
year1=(str1[0]-48)1000+(str1[1]-48)100+(str1[2]-48)10+(str1[3]-48);
year2=(str2[0]-48)
1000+(str2[1]-48)100+(str2[2]-48)10+(str2[3]-48);
month1=(str1[4]-48)10+(str1[5]-48);
month2=(str2[4]-48)
10+(str2[5]-48);
day1=(str1[6]-48)10+(str1[7]-48);
day2=(str2[6]-48)
10+(str2[7]-48);
/cout<<year1<<month1<<day1<<endl;
cout<<year2<<month2<<day2<<endl;
/
for(int i=year1;i<=year2;i++){
int month=(i%10)10+(i%100)/10; //回文
int date=i/1000+((i%1000)/100)
10;
// cout<<month<<" "<<date<<endl;
if(judge_r){//闰年不存在
if(month>12) continue;
if(date>rday[month]) continue;
}
else{//普通年不存在
if(month>12) continue;
if(date>day[month]) continue;
}
if(i==year1){//必须大于左端点
if(month<month1){
continue;
}
else{
if(month==month1&&date<day1){
continue;
}
}
}
if(i==year2){//必须小于右端点
if(month>month2){
continue;
}
else{
if(month==month2&&date>day2){
continue;
}
}
}
ans++;
}
cout<<ans;
return 0;
}

转载于:https://www.cnblogs.com/china-mjr/p/11197453.html

你可能感兴趣的文章
HDOJ-3785 寻找大富翁(优先队列)
查看>>
编程中定义的方法报异常问题
查看>>
使用STM32F103ZET霸道主板实现SD卡的读写(非文件系统)
查看>>
工作中收集JSCRIPT代码之(下拉框篇)
查看>>
《转载》POI导出excel日期格式
查看>>
code异常处理
查看>>
git - 搭建最简单的git server
查看>>
.net中从GridView中导出数据到excel(详细)
查看>>
[LeetCode]Single Number II
查看>>
poj3216 Prime Path(BFS)
查看>>
使用IntelliJ IDEA 2016创建maven管理的Java Web项目
查看>>
R语言 线性回归
查看>>
Ubuntu下用cue文件对ape和wav文件自动分轨
查看>>
会话控制
查看>>
推荐一款UI设计软件Balsamiq Mockups
查看>>
DRF的版本控制,认证,权限和频率限制
查看>>
Linux crontab 命令格式与详细例子
查看>>
百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
查看>>
游标使用
查看>>
LLBL Gen Pro 设计器使用指南
查看>>