【NOIP2016普及组】复赛——回文日期
来源:互联网 发布:搜狗输入法 mac 3.0 编辑:程序博客网 时间:2024/05/29 19:40
题目自己点,复制过来会飞掉
这个题,当时想得太复杂,但没想到竟然得了70分……真的不想说什么
当时的思路——枚举每一天,然后开头和末尾单独处理,于是,洋洋洒洒写了100多行。
正确思路:枚举每一天(不要打我脸)当然方法不同,代码量也就50行,不难理解。
第一步:输入两个int整数即可(因为只有8位),然后分离出它的前4位,中间2位及后面两位,开始结束日期便有了。
第二步:开始循环,每到月末,天数归1,月份++,年末,月份与天数同时归1,只要这个日期是回文就sum++。
第三步:只要枚举的日期和结束日期一样,便停止,最后输出sum即可。
你们最爱的代码:
#include<cstdio>#include<cstring>int y1,m1,d1,y2,m2,d2,sum;int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//存每个月的天数(2月是没用的)bool check(){ return (y1<y2)||((y1==y2&&m1<m2)||(y1==y2&&m1==m2&&d1<=d2));//首先,只要现在的年份小于结束年份就一定可以继续循环;然后,如果现在的年份和结束年份相等,且月份小于结束年份也可以循环;最后,只有天数不同,就必须现在的天数小于结束天数。}int r(int x){ return ((x%4==0&&x%100!=0)||(x%400==0))?29:28;//判断2月的天数}bool palindrome(int y,int m,int d){ char s[8]; int t=y*10000+m*100+d;//将它重新组成日期 sprintf(s,"%d",t);//转换为字符 for(int i=0;i<4;i++) if(s[i]!=s[8-i-1]) return false; return true;//判断回文}int main(){ int t1,t2; scanf("%d%d",&t1,&t2); y1=t1/10000; m1=t1/100%100; d1=t1%100;//分离出年份月份和日数 y2=t2/10000; m2=t2/100%100; d2=t2%100; while(check())//判断是否枚举完 { bool f=1;//f用于看是否一已经进行过日期更新 if(palindrome(y1,m1,d1))//原谅我用这么长的单词装逼 sum++; if((m1==2&&d1==r(y1))||(m1!=2&&d1==day[m1]))//一个月完了 { m1++; d1=1; f=0; } if(m1==13)//一年完了 { y1++; m1=1; d1=1; f=0; } if(f)//如果月没有结束,就直接加天数即可 d1++; } printf("%d",sum); return 0;}
0 0
- 【NOIP2016普及组】复赛——回文日期
- NOIP2016-普及组复赛-第2题-回文日期
- NOIP2016普及组复赛第二题60分程序加题解pascal大神求帮忙!!!———回文日期
- 【NOIP2016普及组】复赛——海港
- NOIP2016普及组第二题——回文日期
- NOIP2016普及组第二题——回文日期
- NOIP2016普及组-回文日期
- [NOIP2016普及] 回文日期
- noip2016普及组复赛
- NOIP2016普及组复赛第一题——买铅笔
- 【NOIP2016普及组】复赛——买铅笔
- 【NOIP2016普及组】复赛——魔法阵
- C++——NOIP2016普及组 t2——回文日期
- noip2016普及组复赛总结
- noip2016普及组复赛题解
- c++回文日期【NOIP2016普及组】解题报告
- NOIP2016普及组复赛第一题ACC程序加题解pascal———买铅笔
- 【复习】冲击NOIP2016普及组复赛
- CentOS下部署Ngrok服务器
- vim 使用
- Apache Kafka 集群环境搭建
- 【Java笔试题】经典出圈问题
- Sublime Text出现Pylinter could not automatically determined the path to lint.py问题
- 【NOIP2016普及组】复赛——回文日期
- 十五周—大写变小写
- cmd命令入门,简单教程(DOS?)
- 用python编写端口扫描器
- Spring基础:快速入门spring boot(3):创建Restful的Web服务
- Javascript图片无缝滚动_妙味课堂
- 第十五周字符串处理new
- 1微型投影仪
- 关于android中线程,进程,组件,app的理解