2 条题解

  • 1
    @ 2026-8-20 10:11:24
    #include <string>
    using namespace std;
    
    int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    string weekNames[] = {"Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
    
    bool isLeapYear(int year) {
        return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    }
    
    int main() {
        int n;
        cin >> n;
    
        int dayOfWeek = n % 7;
    
        int year = 2000;
        int month = 1;
        int day = 1 + n;
    
        while (day > (isLeapYear(year) ? 366 : 365)) {
            day -= isLeapYear(year) ? 366 : 365;
            year++;
        }
    
        if (isLeapYear(year))
            daysInMonth[1] = 29;
        else
            daysInMonth[1] = 28;
    
        while (day > daysInMonth[month - 1]) {
            day -= daysInMonth[month - 1];
            month++;
        }
    
        cout << year << "-" << month << "-" << day << " " << weekNames[dayOfWeek] << endl;
        return 0;
    }
    
    
    

    信息

    ID
    1126
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    92
    已通过
    25
    上传者