题解 | #打印日期#
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int day1[13]={0,31,28,31,30,31,30,31,31,30,31,30,32}; int day2[13]={0,31,29,31,30,31,30,31,31,30,31,30,32}; int main(){ int y,n; int day[13]; int num=0; int t,z; bool m; while(scanf("%d%d",&y,&n)!=EOF){ if((y%4==0&&y%100!=0)||y%400==0) memcpy(day,day2,sizeof(day2)); else memcpy(day,day1,sizeof(day1)); for(int i=0;i<=12;i++){ num+=day[i]; if(num>n){ z=i; if(z==0) z=1; m=true; break; } if(num==n){z=i;m=false;break;}//刚好满几个月了 } if(m==true) if(z==1)t=n; else t=day[z]-(num-n); else t=day[z+1]; printf("%04d-%02d-%02d\n",y,z,t); } return 0; }