试题编号: 201503-3
试题名称: 节日
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。
  现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。
  提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。
  为了方便你推算,已知1850年1月1日是星期二。
输入格式
输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。
输出格式
对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。
  如果该年的a月第b个星期c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
  如果该年的a月第b个星期c并不存在,则输出"none"(不包含双引号)。
样例输入
5 2 7 2014 2015
样例输出
2014/05/11
2015/05/10
评测用例规模与约定
所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y1, y2 ≤ 2050。

问题链接:CCF201503试题。

问题描述:计算“a月的第b个星期c”形式的日期。(详见原问题,点击上面的链接)。

输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。

对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。
如果该年的a月第b个星期c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
如果该年的a月第b个星期c并不存在,则输出"none"(不包含双引号)。

问题分析:需要注意闰年问题,其他都是计算问题。

程序说明:(略)

提交后得100分的C++语言程序如下:

/* CCF201503-3 节日 */#include <iostream>using namespace std;// 月份天数
int monthdays[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};// 闰年计算函数
int leapyear(int year) {return ((year%4 == 0 && year%100 != 0) || year%400 == 0) ? 1 : 0;
}int main()
{int a, b, c, y1, y2, weekd, d, y;// 输入数据cin >> a >> b >> c >> y1 >> y2;// 计算1850年到起始年的天数int days = 0;for(int i=1850; i<y1; i++)days += 365 + leapyear(i);// 计算年月日并且输出for(int i=y1; i<=y2; i++) {// 计算闰年:0为非闰年,1为闰年y = leapyear(i);// 计算从1850年开始,到i年a月1日的天数int days2 = days;for(int i=1; i<a; i++)days2 += monthdays[y][i];// 计算i年a月1日的前一天为星期几weekd = 1 + days2 % 7;// 计算i年的a月第b个星期c是当月的几号d = (b-1) * 7 + ((weekd >= c) ? (c + 7 - weekd) : (c - weekd));// 输出结果if(d > monthdays[y][a])cout << "none" << endl;else {cout << i << "/";if(a<10)cout << "0";cout << a << "/";if(d<10)cout << "0";cout << d << endl;}// 为计算下一年做准备:计算从1850年到下一年开始的天数days += 365 + leapyear(i);}return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7564190.html

CCF201503-3 节日(100分)相关推荐

  1. CCF201503-4 网络延时(100分)

    试题编号: 201503-4 试题名称: 网络延时 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与 ...

  2. CCF201503-1 图像旋转(100分)

    试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. ...

  3. CCF201503-2 数字排序(100分)

    试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输 ...

  4. CCF-CSP认证历年真题解(100分)

    转载: 链接出自:https://blog.csdn.net/tigerisland45/article/details/54755895 CCF-CSP认证历年真题解–python语言 CCF-CS ...

  5. 盐城工学院c语言试卷,听说盐工版的高考题难度系数为A !你能得100分吗?

    高考刚刚结束,今年的高考题目再一次被大家吐槽.小伙伴们,听说盐工版的高考题难度系数为A !拿不到100分不要说你是盐粒子. 注 意 事 项 1. 试卷共五个题型,分别为填空题.选择题.判断题.简答题. ...

  6. 四川高中计算机学校图片,四川2021年100分能上计算机学校吗

    四川100分能上计算机学校吗?从计算机学校方面所进行分析地话,中专计算机学校所对其学生的各方面要求是比较容易被进行满足的,而从学生所考的100分成绩来说的话,成绩是比较地低的,如果想要报读计算机学校的 ...

  7. 大工计算机基础在线3,大工16秋《计算机应用基础》在线测试3-满分100分.pdf

    大工16秋<计算机应用基础>在线测试3-满分100分大工16秋<计算机应用基础>在线测试3-满分100分 大工 16 秋<计算机应用基础>在线测试 3 试卷总分:1 ...

  8. 12门课100分直博清华!这份成绩单冲上热搜,但学霸小伙也曾考过25分

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一 ...

  9. 食出100分:‘粥’的做法4---鱼片瘦肉粥

        今晚再接再励,又煲了一锅粥,哈哈```最近吃粥吃上瘾了````今晚煲的是:鱼片瘦肉粥.嘿嘿``` 材料:猪肉+鱼肉(切片) 配料:酱油+油+盐+葱+香菜+姜片(看粥量来定分量) 这是葱花(切成 ...

最新文章

  1. 配置vtk(Win8.1 + VS2012+VTK-5.10.1)
  2. 改变手机浏览器(iPhone/Android)上文本输入框的默认弹出键盘
  3. 为什么不从算法上优化机器的“眼睛”,而是从“大脑”入手?
  4. 拒绝干扰 解决Wi-Fi的最大问题《转》
  5. Linux系统Logrotate服务介绍
  6. Git新建临时分支进行开发后合并至master
  7. 概率论-1.3 概率的性质(重点:可列与极限之间的互相转换)
  8. 云主机superset接入redis缓存
  9. 2015年《大数据》高被引论文Top10文章No.9——大数据是数据、技术,还是应用
  10. 图片服务 - thumbor详细介绍
  11. layer.alert自定义关闭回调事件
  12. python中函数参数*args和**kw的区别
  13. 周志华《机器学习》读书笔记与习题答案(持续更新)
  14. 全国计算机信息高新技术办公软件应用模块,全国计算机信息高新技术办公软件应用模块(Windows系列)教案.doc...
  15. sql语句如何拼接Java变量
  16. 夜间灯光数据下载(DMSP/OLS,NPP/VIIRS、珞珈一号网址)
  17. 浅析GestureDetector
  18. AMI,HDB3编码译码
  19. 数据安全技术专利态势分析
  20. 苹果白屏一直显示苹果_苹果手机出现白屏要如何修复

热门文章

  1. 启动chrome_Chrome开启多线程下载的方法
  2. delphi php 加密解密_如何恢复被MaMoCrypt勒索软件加密的数据
  3. java subset_Java TreeSet subSet()方法
  4. 基于python的分类模型_python SVM 线性分类模型的实现
  5. linux下配置钉钉内网穿透_4G工业路由器内嵌花生壳PHTunnel,为工业物联网提供智能内网穿透...
  6. 计算机多媒体的应用 毕业论文,计算机多媒体技术(毕业论文)多媒体技术与应用.doc...
  7. Pycharm -- RuntimeWarning: Parent module '...' not found while handling absolute import
  8. 2021-9-30 Python Teaching Note
  9. 大数据学习笔记44:Hive架构
  10. linux 4 内核 c,4. 使代码正确 — The Linux Kernel documentation