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