题解 | 打印日期
#include <stdio.h> int day[2][31]={{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}}; int isleapyear(int i){ if((i%4==0&&i%100!=0)||i%400==0) return 1; else return 0; } int main() { int i,j; scanf("%d %d",&i,&j); int t=isleapyear(i); int m,sum=0; for(m=1;m<=12;m++){ sum+=day[t][m]; if(sum>=j) break; } int q=m; while(j>0) j-=day[t][q--]; j+=day[t][m]; printf("%d-%02d-%02d",i,m,j); return 0; }