求助qwq
查看原帖
求助qwq
1028403
封禁用户楼主2024/5/1 10:11

rt,感觉已经考虑得很全面了 /kk

#include <iostream>
using namespace std;
int p[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int Calc(int x) {
    int ans = 0;
    if (x < 10) ans += 13;
    while (x) {
        int k = x % 10;
        if (k == 0) ans += 13;
        if (k == 1) ans++;
        if (k == 2 || k == 7 || k == 8 || k == 9) ans += 2;
        if (k == 3) ans += 3;
        if (k == 4) ans += 5;
        if (k == 5 || k == 6) ans += 4;
        x /= 10;
    }
    return ans;
}
int main()
{
    int ans = 0;
    for (int y = 2000; y <= 2023; y++) {
        int a = Calc(y);
        for (int m = 1; m <= 12; m++) {
            int b = Calc(m);
            if (m == 2) {
                if (y % 400 == 0 || y % 100 != 0 && y % 4 == 0)
                    p[m] = 29;
                else
                    p[m] = 28;
            }
            for (int d = 1; d <= p[m]; d++) {
                int c = Calc(d);
                int tot = a + b + c;
                if (tot > 50) ans++;
            }
        }
    }
    int a = Calc(2024);
    for (int m = 1; m <= 3; m++) {
        int b = Calc(m);
        if (m == 2) p[m] = 29;
        for (int d = 1; d <= p[m]; d++) {
            int c = Calc(d);
            int tot = a + b + c;
            if (tot > 50) ans++;
        }
    }
    int b = Calc(4);
    for (int d = 1; d <= 13; d++) {
        int c = Calc(d);
        int tot = a + b + c;
        if (tot > 50) ans++;
    }
    cout << ans << endl;
    return 0;
}
2024/5/1 10:11
加载中...