3 条题解
-
1
超绝switch大法
#include<bits/stdc++.h> using namespace std; const int N=1e3+10; int main() { int n; cin>>n; cout<<"MON TUE WED THU FRI SAT SUN"<<endl; switch(n){ case 1: cout<<" 1 2 3 4 5\n"; cout<<" 6 7 8 9 10 11 12\n"; cout<<" 13 14 15 16 17 18 19\n"; cout<<" 20 21 22 23 24 25 26\n"; cout<<" 27 28 29 30 31"; break; case 2: cout<<" 1 2\n"; cout<<" 3 4 5 6 7 8 9\n"; cout<<" 10 11 12 13 14 15 16\n"; cout<<" 17 18 19 20 21 22 23\n"; cout<<" 24 25 26 27 28"; break; case 3: cout<<" 1 2\n"; cout<<" 3 4 5 6 7 8 9\n"; cout<<" 10 11 12 13 14 15 16\n"; cout<<" 17 18 19 20 21 22 23\n"; cout<<" 24 25 26 27 28 29 30\n"; cout<<" 31"; break; case 4: cout<<" 1 2 3 4 5 6\n"; cout<<" 7 8 9 10 11 12 13\n"; cout<<" 14 15 16 17 18 19 20\n"; cout<<" 21 22 23 24 25 26 27\n"; cout<<" 28 29 30"; break; case 5: cout<<" 1 2 3 4\n"; cout<<" 5 6 7 8 9 10 11\n"; cout<<" 12 13 14 15 16 17 18\n"; cout<<" 19 20 21 22 23 24 25\n"; cout<<" 26 27 28 29 30 31"; break; case 6: cout<<" 1\n"; cout<<" 2 3 4 5 6 7 8\n"; cout<<" 9 10 11 12 13 14 15\n"; cout<<" 16 17 18 19 20 21 22\n"; cout<<" 23 24 25 26 27 28 29\n"; cout<<" 30"; break; case 7: cout<<" 1 2 3 4 5 6\n"; cout<<" 7 8 9 10 11 12 13\n"; cout<<" 14 15 16 17 18 19 20\n"; cout<<" 21 22 23 24 25 26 27\n"; cout<<" 28 29 30 31"; break; case 8: cout<<" 1 2 3\n"; cout<<" 4 5 6 7 8 9 10\n"; cout<<" 11 12 13 14 15 16 17\n"; cout<<" 18 19 20 21 22 23 24\n"; cout<<" 25 26 27 28 29 30 31"; break; case 9: cout<<" 1 2 3 4 5 6 7\n"; cout<<" 8 9 10 11 12 13 14\n"; cout<<" 15 16 17 18 19 20 21\n"; cout<<" 22 23 24 25 26 27 28\n"; cout<<" 29 30"; break; case 10: cout<<" 1 2 3 4 5\n"; cout<<" 6 7 8 9 10 11 12\n"; cout<<" 13 14 15 16 17 18 19\n"; cout<<" 20 21 22 23 24 25 26\n"; cout<<" 27 28 29 30 31"; break; case 11: cout<<" 1 2\n"; cout<<" 3 4 5 6 7 8 9\n"; cout<<" 10 11 12 13 14 15 16\n"; cout<<" 17 18 19 20 21 22 23\n"; cout<<" 24 25 26 27 28 29 30"; break; case 12: cout<<" 1 2 3 4 5 6 7\n"; cout<<" 8 9 10 11 12 13 14\n"; cout<<" 15 16 17 18 19 20 21\n"; cout<<" 22 23 24 25 26 27 28\n"; cout<<" 29 30 31"; break; } return 0; } //老登布置的作业系列 //嗨嗨嗨 -
1
#include <bits/stdc++.h> using namespace std;const int N=1e5+10;const int INF=0x3f3f3f3f;int main() {int m;cin >> m;int ds[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int w = 3;for(int i = 1; i < m; ++i)w = (w + ds[i-1]) % 7;cout << "MON TUE WED THU FRI SAT SUN" << endl;for(int i = 0; i < (w + 6) % 7; ++i)cout << " ";for(int day = 1; day <= ds[m-1]; ++day){cout << setw(3) << day;if ((day + (w + 6) % 7) % 7 == 0 || day == ds[m-1])cout << endl;else cout << " ";}return 0;}满级对比
#include<bits/stdc++.h> using namespace std; const int N=1e3+10; int main() { int n; cin>>n; cout<<"MON TUE WED THU FRI SAT SUN"<<endl; switch(n){ case 1: cout<<" 1 2 3 4 5\n"; cout<<" 6 7 8 9 10 11 12\n"; cout<<" 13 14 15 16 17 18 19\n"; cout<<" 20 21 22 23 24 25 26\n"; cout<<" 27 28 29 30 31"; break; case 2: cout<<" 1 2\n"; cout<<" 3 4 5 6 7 8 9\n"; cout<<" 10 11 12 13 14 15 16\n"; cout<<" 17 18 19 20 21 22 23\n"; cout<<" 24 25 26 27 28"; break; case 3: cout<<" 1 2\n"; cout<<" 3 4 5 6 7 8 9\n"; cout<<" 10 11 12 13 14 15 16\n"; cout<<" 17 18 19 20 21 22 23\n"; cout<<" 24 25 26 27 28 29 30\n"; cout<<" 31"; break; case 4: cout<<" 1 2 3 4 5 6\n"; cout<<" 7 8 9 10 11 12 13\n"; cout<<" 14 15 16 17 18 19 20\n"; cout<<" 21 22 23 24 25 26 27\n"; cout<<" 28 29 30"; break; case 5: cout<<" 1 2 3 4\n"; cout<<" 5 6 7 8 9 10 11\n"; cout<<" 12 13 14 15 16 17 18\n"; cout<<" 19 20 21 22 23 24 25\n"; cout<<" 26 27 28 29 30 31"; break; case 6: cout<<" 1\n"; cout<<" 2 3 4 5 6 7 8\n"; cout<<" 9 10 11 12 13 14 15\n"; cout<<" 16 17 18 19 20 21 22\n"; cout<<" 23 24 25 26 27 28 29\n"; cout<<" 30"; break; case 7: cout<<" 1 2 3 4 5 6\n"; cout<<" 7 8 9 10 11 12 13\n"; cout<<" 14 15 16 17 18 19 20\n"; cout<<" 21 22 23 24 25 26 27\n"; cout<<" 28 29 30 31"; break; case 8: cout<<" 1 2 3\n"; cout<<" 4 5 6 7 8 9 10\n"; cout<<" 11 12 13 14 15 16 17\n"; cout<<" 18 19 20 21 22 23 24\n"; cout<<" 25 26 27 28 29 30 31"; break; case 9: cout<<" 1 2 3 4 5 6 7\n"; cout<<" 8 9 10 11 12 13 14\n"; cout<<" 15 16 17 18 19 20 21\n"; cout<<" 22 23 24 25 26 27 28\n"; cout<<" 29 30"; break; case 10: cout<<" 1 2 3 4 5\n"; cout<<" 6 7 8 9 10 11 12\n"; cout<<" 13 14 15 16 17 18 19\n"; cout<<" 20 21 22 23 24 25 26\n"; cout<<" 27 28 29 30 31"; break; case 11: cout<<" 1 2\n"; cout<<" 3 4 5 6 7 8 9\n"; cout<<" 10 11 12 13 14 15 16\n"; cout<<" 17 18 19 20 21 22 23\n"; cout<<" 24 25 26 27 28 29 30"; break; case 12: cout<<" 1 2 3 4 5 6 7\n"; cout<<" 8 9 10 11 12 13 14\n"; cout<<" 15 16 17 18 19 20 21\n"; cout<<" 22 23 24 25 26 27 28\n"; cout<<" 29 30 31"; break; } return 0; } //老登布置的作业系列 //嗨嗨嗨 -
0
#include <iostream> #include <iomanip> #include <string> using namespace std; // 获取某月的天数 int getDaysInMonth(int year, int month) { int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; return days[month - 1]; } // 计算某年某月1号是星期几 int getWeekday(int year, int month, int day) { if (month == 1 || month == 2) { month += 12; year--; } int weekday = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7; return weekday; } // 输出日历 void printCalendar(int year, int month) { // 获取当月天数 int daysInMonth = getDaysInMonth(year, month); // 获取1号是星期几(0=星期一, 6=星期日) int firstDayWeek = getWeekday(year, month, 1); // 输出星期标题 cout << "MON TUE WED THU FRI SAT SUN" << endl; // 输出第一行的空格(对齐用) // 每个日期占4个字符(一个空格+3个字符),第一个日期前不需要空格 for (int i = 0; i < firstDayWeek; i++) { cout << " "; // 4个空格,对应一个日期占位 } // 输出日期 for (int day = 1; day <= daysInMonth; day++) { // 右对齐,宽度为3,让个位与字母对齐 cout << setw(3) << day; // 如果不是周日,输出空格分隔 if ((firstDayWeek + day) % 7 != 0) { cout << " "; } else { // 周日换行 cout << endl; } } // 如果最后一行没有换行,补一个换行 if ((firstDayWeek + daysInMonth) % 7 != 0) { cout << endl; } } int main() { int month; cin >> month; printCalendar(2025, month); return 0; }
- 1
信息
- ID
- 3409
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 157
- 已通过
- 51
- 上传者