【学习笔记】〖九度OJ〗题目1186:打印日期
2014-03-05 17:41
281 查看
题目1186:打印日期
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2549
解决:918
题目描述:
给出年分m和一年中的第n天,算出第n天是几月几号。
输入:
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出:
可能有多组测试数据,对于每组数据,
按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
样例输入:
样例输出:
来源:2003-2005年华中科技大学计算机研究生机试真题
答疑:解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7909-1-1.html
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2549
解决:918
题目描述:
给出年分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
来源:2003-2005年华中科技大学计算机研究生机试真题
答疑:解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7909-1-1.html
//本题利用Hash思想,将对应平闰年各月分天数存储,免去条件判断
#include<iostream> #include<cstring> #include<stdio.h> using namespace std; int dofm[2][12] = {31, 28 ,31,30,31,30,31,31,30,31,30,31, 31, 29 ,31,30,31,30,31,31,30,31,30,31}; int isR(int year) { int res = 0; if (year%400 == 0) { return 1; } if (year%4 == 0) { if (year%100 == 0) { return 0; } res = 1; } return res; } int main() { int year, day, i,j; while (cin >> year >> day) { j = isR(year); for (i=0; i<12; i++) { if (day > dofm[j][i]) { day -= dofm[j][i]; } else break; } printf("%04d-%02d-%02d\n", year, i+1, day); } return 0; }
相关文章推荐
- 【学习笔记】〖九度OJ〗题目1186:打印日期
- 【学习笔记】〖九度OJ〗题目1153:括号匹配问题
- 九度OJ-1186:打印日期
- 九度题目1186:打印日期
- 【学习笔记】〖九度OJ〗题目1153:括号匹配问题
- 九度题目1186:打印日期
- 【学习笔记】〖九度OJ〗题目1138:进制转换
- 九度OJ学习笔记 题目1096
- 九度题目1186:打印日期
- 【学习笔记】〖九度OJ〗题目1138:进制转换
- 九度oj 1186 打印日期
- 【学习笔记】〖九度OJ〗题目1446:Head of a Gang
- 九度OJ 1186:打印日期 (日期计算)
- 【学习笔记】〖九度OJ〗题目1156:谁是你的潜在朋友
- 九度OJ 1186:打印日期 (日期计算)
- 【学习笔记】〖九度OJ〗题目1156:谁是你的潜在朋友
- 【学习笔记】〖九度OJ〗题目1437:To Fill or Not to Fill
- 【学习笔记】〖九度OJ〗题目1443:Tr A
- 九度OJ学习笔记 题目1023
- 【学习笔记】〖九度OJ〗题目1437:To Fill or Not to Fill