zoukankan      html  css  js  c++  java
  • date题解

    这道题有两种做法,一是直接暴力枚举天数(居然没炸!!!???)而是我们可以发现,一年中最多只有一天可以形成回文日期。那么,我们只需要枚举年份,然后再判断所对应的月,日是否符合逻辑,和规定日期然后就可以了

    ----------------------------------------------------------------------------以下是代码-------------------------------------------------------------------------------------

    #include <stdio.h>
    char a[10],b[10];
    int lena,lenb,nian1,y1,r1,nian2,y2,r2,ans,yue,ri,p;
    int ye[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int ru[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int main()
    {
    scanf("%s ",a);
    scanf("%s",b);
    nian1=(a[0]-'0')*1000+(a[1]-'0')*100+(a[2]-'0')*10+(a[3]-'0');
    y1=(a[4]-'0')*10+(a[5]-'0');
    r1=(a[6]-'0')*10+(a[7]-'0');
    nian2=(b[0]-'0')*1000+(b[1]-'0')*100+(b[2]-'0')*10+(b[3]-'0');
    y2=(b[4]-'0')*10+(b[5]-'0');
    r2=(b[6]-'0')*10+(b[7]-'0');
    for(int i=nian1;i<=nian2-1;i++)
    { p=i;
    if((i%4==0&&i%100!=0)||i%400==0)
    { yue=(p%10)*10+((p/10)%10);
    if(yue<=12&&yue>=1)
    { ri=((p/100)%10)*10+((p/1000)%10);
    if(ru[yue]>=ri)
    { ans++;
    }
    else continue;
    }
    else continue;
    }
    else
    { yue=(p%10)*10+((p/10)%10);
    if(yue<=12&&yue>=1)
    { ri=((p/100)%10)*10+((p/1000)%10);
    if(ye[yue]>=ri)
    { ans++;
    }
    else continue;
    }
    else continue;
    }
    }
    p=nian2;
    if((nian2%4==0&&nian2%100!=0)||nian2%400==0)
    { yue=(p%10)*10+((p/10)%10);
    if(yue<=12&&yue>=1)
    { ri=((p/100)%10)*10+((p/1000)%10);
    if(ru[yue]>=ri)
    { ans++;
    }
    }
    }
    else
    { yue=(p%10)*10+((p/10)%10);
    if(yue<=12&&yue>=1)
    { ri=((p/100)%10)*10+((p/1000)%10);
    if(ye[yue]>=ri)
    { ans++;
    }
    }
    }
    printf("%d ",ans);
    return 0;
    }

  • 相关阅读:
    vue2查看大图vue-preview使用笔记
    promise使用场景
    vue2移动端使用vee-validate进行表单验证
    移动端单位换算理解
    ...
    我的promise学习笔记
    前端本地调试解决跨域的两种方法
    vue2 零星笔记
    vue2.x使用百度地图
    BZOJ 3368 约翰看山(扫描)O(N)
  • 原文地址:https://www.cnblogs.com/new-hand/p/6105730.html
Copyright © 2011-2022 走看看