-
题目描述:
-
给出年分m和一年中的第n天,算出第n天是几月几号。
-
输入:
-
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
-
输出:
-
可能有多组测试数据,对于每组数据,
按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
-
样例输入:
-
2000 3 2000 31 2000 40 2000 60 2000 61 2001 60
-
样例输出:
-
2000-01-03 2000-01-31 2000-02-09 2000-02-29 2000-03-01 2001-03-01
#include <stdio.h>
#include <stdlib.h>
int run[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int zheng[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main() {
int y, n, i, cnt, j;
while(scanf("%d%d", &y, &n) != EOF) {
cnt = 0;
if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
for(i = 0; i < 12; i++) {
cnt += run[i];
if(n <= cnt) {
break;
}
}
if(i == 0) {
printf("%04d-01-%02d\n", y, n);
}
else {
printf("%04d-%02d-", y, i + 1);
for(j = 0; j < i; j++) {
n -= run[j];
}
printf("%02d\n", n);
}
}
else {
for(i = 0; i < 12; i++) {
cnt += zheng[i];
if(n <= cnt) {
break;
}
}
if(i == 0) {
printf("%04d-01-%02d\n", y, n);
}
else {
printf("%04d-%02d-", y, i + 1);
for(j = 0; j < i; j++) {
n -= zheng[j];
}
printf("%02d\n", n);
}
}
}
return 0;
}