本题无难点

写得有点复杂,其实最基本的就是把年月日拆开算

#include <bits/stdc++.h>
using namespace std;

int day(int y, int m)
{

    if (m == 2)
    {
        if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
        {
            return 29;
        }

        return 28;
    }

    vector<int> t31 = {1, 3, 5, 7, 8, 10, 12};
    vector<int>::iterator it = find(t31.begin(), t31.end(), m);
    if (it != t31.end())
    {
        return 31;
    }
    return 30;
}

int d0(int a, char mo)
{
    string sa;
    if (a < 10)
    {
        sa = "0";
    }
    sa += to_string(a);
    int ans = 0;
    for (char x : sa)
    {
        if (x == mo)
            ans++;
    }

    return ans;
}

void run(int y, int m, int mn)
{
    int t;
    char mo = '0' + mn;
    t = day(y, m);

    int an = d0(y, mo) * t + d0(m, mo) * t;
    for (int i = 1; i <= t; i++)
    {
        an += d0(i, mo);
    }
    cout << an<<endl;
}

int main()
{
    int y, m, mn;
    while (~scanf("%d%d%d", &y, &m, &mn))
    {
        run(y, m, mn);
    }
    return 0;
}