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;
    }
    
    
    
    • -1
      @ 2026-5-10 13:58:27

      #include using namespace std;

      int isLeap(int y) { if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) { return 1; } return 0; }

      int main() { int days; cin >> days;

      int year = 2000;
      int month = 1;
      int day = 1;
      int weekday = (6 + days) % 7;
      
      int monthDays[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
      
      int d = days;
      
      while (d > 0) {
          int daysInYear = isLeap(year) ? 366 : 365;
          if (d >= daysInYear) {
              d -= daysInYear;
              year++;
          } else {
              for (int m = 1; m <= 12; m++) {
                  int daysInMonth = monthDays[m];
                  if (m == 2 && isLeap(year)) {
                      daysInMonth = 29;
                  }
                  if (d >= daysInMonth) {
                      d -= daysInMonth;
                  } else {
                      month = m;
                      day = 1 + d;
                      d = 0;
                      break;
                  }
              }
          }
      }
      
      cout << year << "-" << month << "-" << day << " ";
      
      string week[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
      cout << week[weekday];
      
      return 0;
      

      }

      • 1

      信息

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