题解 | 打印日期
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
int date[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
bool isLeapYear(int year){
return (year%4==0&&year%100!=0)||year%400==0;
}
int main() {
int year, day;
while (cin >> year >> day) {
int month=0,k=0,i=0;
if(isLeapYear(year))k=1;
while(date[k][i]<day){
day-=date[k][i];i++;month++;
}
printf("%04d-%02d-%02d\n",year,month,day);
}
}
直接扫就行了,这个没跨年
查看4道真题和解析