3 条题解

  • 1
    @ 2026-2-2 15:44:55

    超绝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
      @ 2026-2-2 15:42:59
      #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
        @ 2026-4-1 19:41:29
        #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
        上传者