本题无难点
写得有点复杂,其实最基本的就是把年月日拆开算
#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;
}

京公网安备 11010502036488号