社区讨论

70pts求调

P2010[NOIP 2016 普及组] 回文日期参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo13hwd1
此快照首次捕获于
2023/10/22 14:36
2 年前
此快照最后确认于
2023/11/02 14:06
2 年前
查看原帖
CPP
#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;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...