返回题解分享
讨论 / 题解分享/ 帖子详情

星系炸弹(结果填空) - 题解

AC 代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
    // 设置一个标志变量, 遍历到指定日期就更改标志量
    int flag = 0, cnt = 0;

    for (int year = 2000; year <= 2022; year ++ )
    for (int month = 1; month <= 12; month ++ )
    for (int day = 1; day <= 31; day ++ )
    {
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12);
        else if (month == 2)
        {
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
            {
                if (day > 29) break;
            }
            else
            {
                if (day > 28) break;
            }
        }
        else
        {
            if (day > 30) break;
        }
        
        if (year == 2014 && month == 11 && day == 9)
            flag = 1;
        
        if (flag == 1)
            cnt ++ ;
        
        // 遍历从 11.9 开始, 但是间隔的日期是从下一天开始算的, 所以 1001
        if (cnt == 1001)
            cout << year << '-' << month << '-' << day << endl;
    }
    
    return 0;
}
0 回复 0 转发 0 喜欢 5 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!