4 条题解

  • 3
    @ 2023-7-17 7:51:08

    海的那边是自由吗……………… 不 海的那边是

    ikun 黄昏产生虚伪的拥护 落日见证真正的信徒 ikun永不落幕!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    • 1
      @ 2023-4-3 18:35:24

      C++

      Florance

      折磨了我好久好久,已经是历史遗留产物了......

      代码已经过处理,使冗长的代码变得清晰明了

      #include <bits/stdc++.h>
      using namespace std;
      
      bool LeapYear(int y) { //闰年判断
          if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
              return true;
          }
          else {
              return false;
          }
      }
      
      int Days(int y, int m) { //计算某年某月有几天
          if(m == 4 || m == 6 || m == 9 || m == 11) {
              return  30;
          }
          if(m == 2) {
              if(LeapYear(y)) return 29;
              else return  28;
          }
          else return  31;
      }
      
      void Print(int w, int d) { //输出
          cout << " Sun Mon Tue Wed Thu Fri Sat" << endl;
          if(w != 6) {
              for(int i = 0; i <= w; i++) cout << "    ";
          }
          int k;
          if(w == 6) k = -1;
          else k = w;
          for(int i = 1; i <= d; i++) {
              k += 1;
              if(k == 7) { //每一个星期一行
                  cout << endl;
                  k = 0;
              };
              printf("%4d", i);
          }
      }
      
      int main(){
          int y, m, d;
          cin >> y >> m;
          int w;
      
          d = Days(y, m);
      
          if(m == 1 || m == 2) { // 基姆拉尔森计算公式的坑点
              y -= 1;
              m += 12;
          }
      
          w = (1+2\*m+3\*(m+1)/5+y+y/4-y/100+y/400) % 7; //计算1日是星期几
      
          Print(w, d);
          return 0;
      }
      
      • @ 2023-4-13 14:14:36

        这题C++做的都是牛人

    • 0
      @ 2025-2-24 11:26:58
      #include<bits/stdc++.h>
      using namespace std;
      int y,m,s,w,sm[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},d[13][35],x;
      int main(){
          cin>>y>>m;
          cout<<" Sun Mon Tue Wed Thu Fri Sat\n";
          s=y-1+((y-1)/4)-((y-1)/100)+((y-1)/400)+1;
          w=s%7;
          if((y%4==0&&y%100!=0)||y%400==0){
              sm[2]=29;
          }
          for(int i=1;i<=12;i++){
              for(int j=1;j<=sm[i];j++){
                  d[i][j]=w;
                  w++;
                  if(w>6){
                      w=0;
                  }
                  //cout<<s<<endl;
              }
          }
          for(int i=1;i<=d[m][1];i++){
              cout<<"    ";
          }
          for(int i=1;i<=sm[m];i++){
              if(i/10==0){
                  cout<<' ';
              }
              cout<<"  "<<i;
              if(d[m][i]==6){
                  cout<<endl;
              }
          }
          return 0;
      }
      
      • 0
        @ 2021-5-24 13:43:02

        C++ :

        #include <iostream>
        #include <cstdio>
        using namespace std;
        int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        int isleap(int year);
        int main()
        {
            int year,month;
            scanf("%d%d",&year,&month);
            int sum=0,k=1;//365%7
            for(int i=1; i<=year-1; i++){
                if(isleap(i)){
                    sum+=2;
                }else{
                    sum+=1;
                }
            }
            sum%=7;
            if(isleap(year)&& month>2){sum++;}
            for(int i=1; i<month; i++){
                sum+=days[i-1];
            }
            sum%=7;
            int day=days[month-1];
            if(isleap(year)&& month==2){day++;}
            printf(" Sun Mon Tue Wed Thu Fri Sat\n");
            if(sum<6){
                for(int i=0; i<=sum; i++){
                    printf("    ");
                }
            }
        
            for(int i=1; i<=day; i++){
                printf("%4d",i);
                if(++sum%7==6){printf("\n");}
            }
            return 0;
        }
        
        int isleap(int year)
        {
            if(year%400==0 || (year%4==0 && year%100!=0)){
                return 1;
            }else{
                return 0;
            }
        }
        
        
        • 1

        信息

        ID
        108
        时间
        1000ms
        内存
        128MiB
        难度
        6
        标签
        递交数
        115
        已通过
        37
        上传者