首页 > 代码库 > 九度OJ 打印日期 (模拟)
九度OJ 打印日期 (模拟)
时间限制: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; }
注意输出格式的问题
九度OJ 打印日期 (模拟)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。