https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b?tpId=69&tqId=29669&tPage=1&ru=/kaoyan/retest/11002&qru=/ta/hust-kaoyan/question-ranking
格式化输出
printf("%04d-%02d-%02d\n",y,i,n + monDay[ry][i]);
%04d 表示一共四位不足的前面用0补齐
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
#define debug(x) cout<<#x<<": "<<x<<endl;
int monDay[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}
};
int isrun(int y){
if(y%100 ==0 ){
return ( y%400 == 0);
}else{
return ( y%4 == 0);
}
}
int main()
{
int y;
int n;
while(scanf("%d%d" , &y,&n) != EOF){
int ry = isrun(y);
for(int i=0;i<13;i++){
n -= monDay[ry][i];
if( n <= 0 ){
printf("%04d-%02d-%02d\n",y,i,n + monDay[ry][i]);
break;
}
}
}
return 0;
}