- 前言
辣鸡作者在写不出正确代码的情况下,逛了一小时的CSDN,看了大约六个人的不同解法之后,提炼出思路最简单的方法

- 题干

今天是2017年8月6日,农历闰六月十五。
小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。
为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。
小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
【输入形式】
第一行为T,表示输入数据组数。
每组数据包含一个日期,格式为YYYY-MM-DD。
1 ≤ T ≤ 10000, YYYY ≥ 0
日期一定是个合法的日期

- 思路简述
1、从y年m月d日到x年m月d日,所经历的天数刚好为7的倍数。
2、小伙伴们可能出现错误的地方就是,闰年的2月29日这一天,及其前后该如何处理,其实你自己在草稿纸上模拟一次,不难发现,《1》2月29日之前,如果这一年是闰年的话,那它到m月d日就会经历366天,《2》如果是2月29日之后,那只有它的下一年是闰年的时候当它到下一年的m月d日时会经理366天。《3》如果是2月29日当天的话,它一直到下一个2月29日,会经历3个平年,一个闰年,也就是3653+366天(或者是3654+1天)。

  • 辣鸡作者的代码
# include <iostream>
using namespace std;
bool is_leap(int x){return ((x%4==0)&&(x%100==0))||(x%400==0);}
bool is_exit(int x){return x%7==0;
}
int pro(int year,int month,int day){int num=0;while(1){//情况1:2月29日当天if (month==2&&day==29){if (is_leap(year)){year+=4;sum += 365*4+1;}else{year+=4;sum+=365*4;}if (is_exit(sum)) return year;}//情况2:在2月之后else if (month>2){if (is_leap(year+1)){sum+=366;year++;}else{sum+=365;year++;}if  (is_exit(sum)) return year;}else if (month<=2){if (is_leap(year)){sum+=366;year++;}else{sum+=365;year++;}if (is_exit(sum)) return year;}}
}
int main(){int T;cin>>T;int Year[T],Month[T],Day[T],Result[T];char q1,q2; for (int i=0;i<T;i++){cin>>Year[i]>>q1>>Month[i]>>q2>>Day[i];}for (int i=0;i<T;i++){cout<<pro(Year[i],Month[i],Day[i])<<endl;}return 0;
}

如有建议,不胜感激。如有兴趣,动动小手,给小菜鸡点个关注,若想交流,加个好友,留言即可。

今夕何夕(思路详解)相关推荐

  1. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

    CNN模型搭建.训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中.为了大家更好的学习"零基础入门语音识别(食物声音识别)"的课程设计者 ...

  2. vuepdf转换html,Vue网页html转换PDF(最低兼容ie10)的思路详解

    Vue网页html转换PDF(最低兼容ie10)的思路详解 发布时间:2020-10-16 13:05:09 来源:脚本之家 阅读:95 作者:冷藏封 HTML转PDF: 1.页面底层实现--Vue: ...

  3. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  4. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  5. Java编程配置思路详解

    Java编程配置思路详解 SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官 ...

  6. android仿知乎按钮动效,Android仿知乎客户端关注和取消关注的按钮点击特效实现思路详解...

    先说明一下,项目代码已上传至github,不想看长篇大论的也可以先去下代码,对照代码,哪里不懂点哪里. 代码在这https://github.com/zgzczzw/ZHFollowButton 前几 ...

  7. FPGA串口(UART)通信协议制定与设计思路详解示例

    串口(UART)通信协议制定与设计思路详解 1 概述 本文用于描述规定的串口通信协议,以及传输内容. 2 项目关于串口的要求 a) 支持BIT自检,1路UART上报BIT信息: b) 1路UART接口 ...

  8. python virtualenv conda_在vscode中启动conda虚拟环境的思路详解

    问题:cudatoolkit cudnn 通过conda 虚拟环境安装,先前已经使用virtualenv安装tf,需要在conda虚拟环境中启动外部python虚拟环境 思路:conda prompt ...

  9. php数组10000分割1000_PHP切割整数工具类似微信红包金额分配的思路详解

    主要代码:NumberSlicing.php 思路:将数字按精度放大倍数,比如切割数字1,切割的份数是10,精度是0.01,则将1放大100 X 10倍,然后再来对加了1000倍权重后的值进行切割.切 ...

  10. python统计汉字字数_Python 统计字数的思路详解

    问题描述: 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次 ...

最新文章

  1. 论一枚数据科学家的自我修养
  2. org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
  3. MATLAB实战系列(一)-二维路径规划算法续集-图像边缘提取(附代码)
  4. wamp php imagick,如何在wamp for Windows中安装和启用Imagick扩展 php psd 生成缩略图
  5. leetcode 1046. 最后一块石头的重量(堆)
  6. 计算机网络与传统的通信网络的最大区别,3G,4G技术3G与传统通信技术的主要区别?主要特色?另对4G稍 爱问知识人...
  7. DW06、DW07 锂电保护IC手册电路,锂电池过充过放过流短路保护芯片电路
  8. BP网络算法及其改进
  9. 自然环境资源数据集分享——资源环境数据云平台
  10. Win10上的dll依赖查看工具Dependencies
  11. IIC详解之AT24C08
  12. 转载:技术大停滞——范式春梦中的地球工业文明8 反思与总结
  13. html给按钮加颜色代码,HTML按钮上的默认颜色代码
  14. 太原科技大学调剂计算机,2016年太原科技大学考研调剂信息
  15. VC版计算器(豪华界面)
  16. 小米盒子 改装 无线打印服务器,终于找到了“小米盒子增强版”不定期断网的bug了,2.4G模块bug!...
  17. 研究发现:“帽子”越多越高的教师,对研究生越没有用
  18. 简单认识一下苹果笔记本以及使用MBP开发一年的心得体会
  19. NVME SSD vs SATA SSD(转)
  20. 显示器点距 测试软件,液晶显示器常见、尺寸、分辨率、点距

热门文章

  1. html弹窗隐藏,js弹窗window.open 隐藏地址栏的问题location
  2. 太原理工大学学生校园邮箱登陆方法
  3. C++链表的排序实现
  4. 【前端学习日记】使用HTML实现文件的上传和下载
  5. 大环境不确定,高端IT人才独有的大趋势在哪?|猿代码科技
  6. Android 基于AccessibilityService智能安装Apk 仿 豌豆荚
  7. 把一个页面进行四等分
  8. (ECCV-2022)GaitEdge:超越普通的端到端步态识别,提高实用性
  9. java扫雷游戏的实现
  10. 立讯检测 | 广州可靠性——标准IEC 61373:2010介绍