70pts求调

P2010 [NOIP2016 普及组] 回文日期

hexing23333 @ 2023-10-13 18:42:56

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int run (int year)
{
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
    {
        return 1;
    }
    return 0;
}
int main()
{
    int date1, date2, sum = 0;
    cin >> date1 >> date2;
    int d1m = date1 / 100 % 100, d1d = date1 % 100, d2m = date2 / 100 % 100, d2d = date2 % 100;
    for (int year = date1 / 10000; year <= date2 / 10000; year ++)
    {
        int month, day;
        month = (year % 10) * 10 + ((year / 10) % 10);
        day = ((year / 100) % 10) * 10 + year / 1000;
        if (month > 12 || month < d1m || month > d2m) continue;
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
        {
            if (day > 31 || day < d1d || day > d2d) continue;
            sum ++;
        }
        if (month == 4 ||month == 6 || month == 9 || month == 11)
        {
            if (day > 30|| day < d1d || day > d2d) continue;
            sum ++;
        }
        if (month == 2)
        {
            if (run(year))
            {
                if(day > 29|| day < d1d || day > d2d) continue;
                sum ++;
            }
            else{
                if(day > 28|| day < d1d || day > d2d) continue;
                sum ++;
            }
        }
    } 
    cout << sum << endl;
    return 0;
}

提交记录


|