解题思路:无

注意事项:无

参考代码:

#include<bits/stdc++.h>

using namespace std;

int M[20]= {0,31,0,31,30,31,30,31,31,30,31,30,31};

bool isLeapyear(int y)

{

    if((y%4==0&&y%100!=0)||y%400==0)

    {

        return true;

    }

    return false;

}

bool check(int y)

{

    int m,d;

    m = (y%10)*10+((y/10)%10);

    d = ((y/100)%10)*10+((y/1000)%10);

    if(m==0||d==0||m>12)

    {

        return false;

    }

    if(m==2)

    {

        if(isLeapyear(y)){ M[2]=29;}

        else if(!isLeapyear(y)){M[2]=28;}

    }

    if(d<=M[m]){return true;}

    else{return false;}

}

int ReYear(int y)

{

    return (y%10)*1000+((y/10)%10)*100+((y/100)%10)*10+((y/1000)%10);

}

int main()

{

    int y1,md1;

    int y2,md2;

    scanf("%4d%4d",&y1,&md1);

    scanf("%4d%4d",&y2,&md2);

    int ans = 0;

    if(y1!=y2)

    {

        bool flag;

        for(int i = y1+1; i<=y2-1 ; i++)        {

            int m,d;            if(check(i)){ans++;}

        }

        if(check(y1)&&md1<=ReYear(y1)){ans++;}

        if(check(y2)&&ReYear(y2)<=md2){ans++;}


    }

    else{

        int m1,d1;

        m1 = (y1%10)*10+((y1/10)%10);

        d1 = ((y1/100)%10)*10+((y1/1000)%10);

        if(check(y1)&&ReYear(y1)>=md1&&ReYear(y1)<=md2)

        {

            ans++;

        }

    }

    cout<<ans<<endl;


    return 0;

}


点赞(1)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

王展搏 3月前 回复TA
so easy