[2016年NOIP普及组] 回文日期

[2016年NOIP普及组] 回文日期

思路:一个 8 位数字是回文的,也就是对于所有的 i(1≤i≤8 )从左向右数的第 i 个数字和第 9-i 个数字(即从右向左数的第i个数字)是相同的。那么每年都最多有一个回文日期。可以将每天所对应的回文日期求出来,最后直接与题目所给范围比较,用计数器记录符合题意的回文日期个数。

代码如下:

#include<iostream>

using namespace std;

int i,j,n,m,a,b,c,sum,ans=0;

int s[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};

int main()

{

      cin>>n>>m;

      for(int i=1;i<=12;i++)//

       for(j=1;j<=s[i];j++)//

       {

           c=(j%10)*1000+

             (j/10)*100+

             (i%10)*10+

             (i/10);//算出前4位

           sum=c*10000+i*100+j;//算出整个日期

           if(sum<n||sum>m) continue;//超出时间范围就退出本轮循环,也可以理解为不在所给范围里的拿掉,剩下的就是符合题意的

           ans++;//统计

       }

      cout<<ans<<endl;

      return 0;

}

posted @   shanyingrui  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示