2 条题解
-
1
#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
#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
- 上传者