题目1186:打印日期
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:4284
解决:1483
-
题目描写叙述:
-
给出年分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>
int m,n;
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int isLeapYear(int y){
if((y%4==0&&y%100!=0)||y%400==0)
{
return 1;
}
else
return 0;
}
void solve()
{
int i=1;
while(n>month[i])
{
n-=month[i];
i++;
}
printf("%04d-%02d-%02d\n",m,i,n);
}
int main(int argc, char *argv[])
{
while(~scanf("%d%d",&m,&n))
{
if(isLeapYear(m)){
month[2]++;
solve();
month[2]--;
}
else
solve();
}
return 0;
}
注意输出格式的问题