思想
从y年1月1日开始,让day=1,模拟翻日历开始往后翻。用一个cnt统计,每翻一页日历统计一天,如果cnt翻到了d天,说明翻够了,不再翻了。
#include <iostream>
using namespace std;
bool is_leap(int y)
{
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0))
return true;
return false;
}
int main()
{
int y, d;
cin >> y >> d;
int cnt = 1;
int m=1,day=1;
while (cnt != d)
{
day++;
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
{
if (day == 32)
{
m++;
day = 1;
}
}
else if (m == 4 || m == 6 || m == 9 || m == 11)
{
if (day == 31)
{
m++;
day = 1;
}
}
else if (m == 2 && is_leap(y))
{
if (day == 30)
{
m++;
day = 1;
}
}
else if (m == 2 && !is_leap(y))
{
if (day == 29)
{
m++;
day = 1;
}
}
cnt++;
}
cout << m << endl << day;
return 0;
}