王展搏


私信TA

用户名:dotcpp0750654

访问量:78

签 名:

有志者 事竟成

等  级
排  名 30026
经  验 514
参赛次数 5
文章发表 1
年  龄 10
在职情况 学生
学  校 实验小学
专  业

  自我简介:

TA的其他文章

很简单的题
浏览:22

解题思路:无

注意事项:无

参考代码:

#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;

}


 

0.0分

2 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

so easy
2024-11-17 18:02:33
  • «
  • 1
  • »