时间限制: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; }
注意输出格式的问题
时间: 2024-12-19 03:30:12