HDU 1308 What Day Is It?(模拟,日期)
解题报告:输入一个年月日,让你求出那一天是星期几,但是做这题之前必须先了解一点历史。首先在1582年之前,判断是否是闰年的标准是只要能被四整除就是闰年,
然后在1752年9月2号的后的11天被抹去了,也就是说1752年9月2号的第二天不是9月3号,而是9月14号。然后知道这些这题就好做了,我的做法是把1年1月1号作为
参考日,那天是星期天,然后计算输入的日子与那天差多少天就可以判断出输入的日子是星期几了。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; int m[][] = {
{,,,,,,,,,,,,},
{,,,,,,,,,,,,},
};
char xingqi[][] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
char yue[][] = {"","January","February","March","April","May","June","July","August","September","October","November","December"}; int judge(int year) //判断是否为润年
{
if(year > )
return year % == && (year % != || year % == );
else return year % == ;
} int num_day(int mon,int day,int year) //以公元1年1月1日为参考点,求到输入的日期为止已经过去的天数
{
int tot = ;
for(int i = ;i < year;++i)
tot += (judge(i)? :);
for(int i = ;i < mon;++i)
tot += m[judge(year)][i];
tot += day;
return tot;
}
int panduan(int mon,int day,int year) //判断输入的日期是否合法
{
if(mon <= || day <= || year <= )
return ;
if(mon > )
return ;
if(day > m[judge(year)][mon])
return ;
return ;
} int main()
{
int day,mon,year;
while(scanf("%d%d%d",&mon,&day,&year))
{
if(day == mon && mon == year && year == )
break;
int tot_d = num_day(mon,day,year);
if(tot_d > )
tot_d -= ;
tot_d -= ;
if(panduan(mon,day,year))
printf("%s %d, %d is a %s\n",yue[mon],day,year,xingqi[tot_d % ]);
else printf("%d/%d/%d is an invalid date.\n",mon,day,year);
}
return ;
}
HDU 1308 What Day Is It?(模拟,日期)的更多相关文章
- HDU 1308 What Day Is It?(模拟题)
解题报告:输入一个年月日,让你求出那一天是星期几,但是做这题之前必须先了解一点历史.首先在1582年之前,判断是否是闰年的标准是只要能被四整除就是闰年, 然后在1752年9月2号的后的11天被抹去了, ...
- HDU 5102 The K-th Distance(模拟)
题意:输入一棵树,输出前k小的点对最短距离dis(i,j)的和. 模拟,官方题解说得很清楚了.不重复了. http://bestcoder.hdu.edu.cn/ 需要注意的是,复杂度要O(n+k), ...
- HDU 5805 NanoApe Loves Sequence (模拟)
NanoApe Loves Sequence 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5805 Description NanoApe, the ...
- HDU 4708 Rotation Lock Puzzle(模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 题目大意:给定一个方形矩阵,边长为3-10的奇数.每一圈的数字可以沿着顺时针方向和逆时针方向旋转 ...
- HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)
异或密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Des ...
- HDU 5949 Relative atomic mass 【模拟】 (2016ACM/ICPC亚洲区沈阳站)
Relative atomic mass Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
Basic Data Structure Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- HDU 5922 Minimum’s Revenge 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
Minimum's Revenge Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- HDU 4814 Golden Radio Base 小模拟
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4814 题意:黄金比例切割点是,如今要求把一个10进制的的数转化成一个phi进制的数,而且不能出现'11'的 ...
随机推荐
- [HDU6304][数学] Chiaki Sequence Revisited-杭电多校2018第一场G
[HDU6304][数学] Chiaki Sequence Revisited -杭电多校2018第一场G 题目描述 现在抛给你一个数列\(A\) \[ a_n=\begin{cases}1 & ...
- 处理大并发量订单处理的 KafKa部署总结
处理大并发量订单处理的 KafKa部署总结 今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为 ...
- [洛谷P3195][HNOI2008]玩具装箱TOY
题目大意:有n个物体,大小为$c_i$.把第i个到第j个放到一起,容器的长度为$x=j-i+\sum\limits_{k-i}^{j} c_k$,若长度为x,费用为$(x-L)^2$.费用最小. 题解 ...
- Jlink下载u-boot
由于各种原因我的fl2440无启动代码,无任何程序,这时要通过jlink来烧录相关boot程序. 准备工作: 1.Jlink使用jlink commander工具 2.初始化sdram的程序boot. ...
- [Leetcode] Wildcard matching 通配符匹配
Implement wildcard pattern matching with support for'?'and'*'. '?' Matches any single character. '*' ...
- Mybatis LIKE模糊查询
1.在代码中拼接好字符串后传入进来 2.使用CONCAT在xml中拼接字符串: <if test="queryParam.keyword != null"> AND b ...
- linux 学习好资源
Linux-Wiki.cn http://linux-wiki.cn/wiki/zh-hans/Linux%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84 Linux目录 ...
- oracle 包和包实现
包: create or replace package sp_pexam_clear as --定义结构体 /*type re_stu is record( rname student.name%t ...
- NodeJS概述
NodeJS中文API 一.概述 Node.js 是一种建立在Google Chrome’s v8 engine上的 non-blocking (非阻塞), event-driven (基于事件的) ...
- 【洛谷 P3842】[TJOI2007]线段(DP)
裸DP.感觉楼下的好复杂,我来补充一个易懂的题解. f[i][0]表示走完第i行且停在第i行的左端点最少用的步数 f[i][1]同理,停在右端点的最少步数. 那么转移就很简单了,走完当前行且停到左端点 ...