2 条题解

  • 0
    @ 2024-08-05 15:12:18
    #include<iostream>
    using namespace std;
    int a[14] = {0, 1, -2, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1};
    int day(bool r, int m1, int d1, int m2, int d2){
        int ans;
        if(r)a[2] = -1;
        else a[2] = -2;
        ans = (m2-m1)*30+d2-d1;
        for(int i = m1; i < m2; i++)ans += a[i];
        return ans;
    }
    bool run(int y){
        return ((y % 400 == 0) || ((y & 3) == 0 && !(y % 100 == 0)));
    }
    int main(){
        int y1, m1, d1, y2, m2, d2, ans, cnt = 0;
        cin >> y1 >> m1 >> d1 >> y2 >> m2 >> d2;
        for(int i = y1; i <= y2; i++){
            if(run(i))cnt++;
        }
        cout << (y2-y1+1)*365 + cnt - day(run(y1), 1, 1, m1, d1) - day(run(y2), m2, d2, 12, 31) - 1;
    }
    
  • -1
    #include<bits/stdc++.h>
    using namespace std;
    int y,m,d;
    bool leap(int y){
        return y%4==0&&y%100!=0||y%400==0;
    }
    int monthday(int y,int m){
        switch(m){
            case 2:return leap(y)+28;
            case 4:case 6:case 9:case 11:return 30;
            default:return 31;
        }
    }
    int yearday(int y,int m,int d){
        int re=d;
        for(int i=1;i<m;i++)
            re+=monthday(y,i);
        for(int i=1;i<y;i++){
            if(leap(i))re+=366;
            else re+=365;
        }
        return re;
    }
    int main(){
        int y1,m1,d1,y2,m2,d2;
        cin>>y1>>m1>>d1;
        cin>>y2>>m2>>d2;
        cout<<yearday(y2,m2,d2)-yearday(y1,m1,d1);
        return 0;
    }
    
  • 1

信息

ID
1093
难度
6
分类
(无)
标签
递交数
364
已通过
93
通过率
26%
上传者