T156530 儒略历-传智杯-练习赛
知道的越多,不知道的越多(微信:Y17744650906)
点赞再看,养成习惯
T156530 儒略历
在 1582 年之前,以 4 为倍数的年份为闰年。正常情况下,一年中一月到十二月的天数分别是 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 天。如果这年是闰年,那么二月则有 29 天。
但某位皇帝发现这么做其实不够准确,会造成误差,因此规定从 1582 年开始,以 4 为倍数的年份,除了以 100 为倍数且不为 400 的倍数年份,才是闰年。同时为了消除误差,规定 1582 年 10 月 4 日的下一天是 1582 年 10 月 15 日,中间的日期就当作不存在了。
现在给出日期,计算这个日期到公元 1 年 1 月 1 日经过的天数。
输入格式:
按照 日月年 的格式输入数据,其中日是 1 到 31 之间的整数,月是三个大写字母,年是 1 到 9999 之间的整数。保证这个日期是合法且存在的。
月份的大写字母:
1月:JAN
2月:FEB
3月:MAR
4月:APR
5月:MAY
6月:JUN
7月:JUL
8月:AUG
9月:SEP
10月:OCT
11月:NOV
12月:DEC
输出格式:
按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出 Keep going…。
输出一个整数表示答案
#include<iostream>
#include<stdio.h>
#include<cctype>
#include<string.h>
using namespace std;
int main(){string in,mon;string mons[13]={"lin","JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"};cin>>in;int day=0,year=0,i,j;int is1 = 1,is2 = 0;for(i=0;i<in.length();i++){if(isdigit(in[i]) && is1){day = day * 10 + (in[i] - '0');}else{is1 = 0;is2 = 1;}if(isalpha(in[i])){mon += in[i];}if(is2 && isdigit(in[i])){year = year * 10 + (in[i] - '0');}}int mou = 0;for(i=1;i<13;i++){if(mons[i] == mon){mou = i;break;}}int ans = 0,is2y;if(year < 1582){for(i=1;i<year;i++){if(i % 4 == 0){ans += 366; }else{ans += 365;}}if(year % 4 == 0 && mou >= 2){is2y = 29;}else{is2y = 28;}for(i=1;i<mou;i++){if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){ans += 31; }else if(i == 2){ans += is2y;}else{ans += 30;}}ans += day;}else if(year == 1582){for(i=1;i<year;i++){if(i % 4 == 0){ans += 366; }else{ans += 365;}}if(mou < 10){for(i=1;i<mou;i++){if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){ans += 31; }else if(i == 2){ans += 28;}else{ans += 30;}}ans += day;}else if(mou == 10){for(i=1;i<mou;i++){if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){ans += 31; }else if(i == 2){ans += 28;}else{ans += 30;}}if(day <= 4){ans += day;}else{ans += (day -10);}}else{for(i=1;i<mou;i++){if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){ans += 31; }else if(i == 2){ans += 28;}else{ans += 30;} }ans += day - 10;}}else{for(i=1;i<=1582;i++){if(i % 4 == 0){ans += 366; }else{ans += 365;}}ans -= 10;for(i=1583;i<year;i++){if((i%4== 0 && i%100!=0 )|| i%400==0){ans += 366; }else{ans += 365;}}if(((i%4== 0 && i%100!=0 )|| i%400==0) && mou >= 2){is2y = 29;}else{is2y = 28;}for(i=1;i<mou;i++){if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){ans += 31; }else if(i == 2){ans += is2y;}else{ans += 30;}}ans += day;}cout<<ans-1;return 0;
}
T156530 儒略历-传智杯-练习赛相关推荐
- 第四届传智杯 | 练习赛 | python解法思路
题目列表 导语 A [#4练习赛]符合条件的数 B [#4练习赛]选代表 C [#4练习赛]成绩统计 D [#4练习赛]背答案 E [#4练习赛]击鼓传花 导语 前几天传智杯出了练习赛,博主考研空闲之 ...
- 洛谷 T156530 儒略历(传智杯-练习赛)
T156530 儒略历 题目描述 在 1582 年之前,以 4 为倍数的年份为闰年.正常情况下,一年中一月到十二月的天数分别是 31, 28, 31, 30, 31, 30, 31, 31, 30, ...
- 第四届传智杯练习赛题解(c++)
共五个题,难度一般. 符合条件的数 题目描述: 给出 N 和 k,找到一个不小于 N的正整数,满足这个数中有 k位数字是 3,且尽可能小. 输入格式: 一行,两个整数 N(1 < =N<= ...
- 洛谷 T156527 直角三角形(传智杯-练习赛)
T156527 直角三角形 题目描述 一个直角三角形的两个直角边是 a, b (a≤b),其斜边是 c,且 a,b,c 都是正整数. 现在我们已经知道了斜边长度 c,请问这个直角三角形的两个直角边的长 ...
- 第五届“传智杯”全国大学生计算机大赛(练习赛)前四题题解
第五届"传智杯"全国大学生计算机大赛(练习赛) 练习赛题单链接:传智杯练习赛 仅有会做的前四题题解,还是太弱了( ^ M ^ !!) 第一题 链接:复读 思路: 就是哈希表记录下出 ...
- 第五届“传智杯”全国大学生计算机大赛(练习赛)
前言:这次练习赛对应的洛谷原题分别是B3654.P8547.P8444.P8462.P8827.P5391.有需要的可以去洛谷找原题看题解弄懂自己不会的 官方给的:练习赛满分程序(多语言):云剪贴板 ...
- 第五届“传智杯”全国大学生计算机大赛(练习赛)传智杯 #5 练习赛] 平等的交易
[传智杯 #5 练习赛] 平等的交易 题目描述 你有 n n n 件道具可以买,其中第 i i i 件的价格为 a i a_i ai. 你有 w w w 元钱.你仅能用钱购买其中的一件商道具.当然, ...
- 答案解析(C语言版本)——第五届“传智杯”全国大学生计算机大赛(练习赛)
目录 A [传智杯 #5 练习赛] 复读 输入输出样例 输入 #1 输出 #1 代码解析如下 B [传智杯 #5 练习赛] 时钟 输入输出样例 输入 #1 输出 #1 输入 #2 输出 #2 输入 # ...
- 洛谷随机刷题之传智杯#3
[传智杯 #3 练习赛] 直角三角形 题目描述 一个直角三角形的两个直角边是 a , b ( a ≤ b ) a,b(a\le b) a,b(a≤b),其斜边是 c c c,且 a , b , c a ...
最新文章
- 一些重要的算法The Most Important Algorithms
- Salsify:高流畅度的实时视频传输新方式
- android实用代码
- vue13过滤器 debounce延迟、limitBy、filterBy、orderBy
- 【codevs2131】【BZOJ1924】所驼门王的宝藏,tarjan+拓扑DP
- vue 实现无限轮播_Vue 实现无缝轮播
- 【转】Struts2中json插件的使用
- Nsrp实现juniper防火墙的高可用性【HA】!
- oracle24550,ORA-24550: signal received:这个问题的原因及解决办法
- [福大软工] Z班 软件工程实践总结 作业成绩
- 中心极限定理_达尔文的进化论正确吗?
- Builder中使用Access数据库
- 嵌入式C语言编码规范
- 计算机win7安装打印机,Win7系统怎么安装打印机 win7安装打印机的方法【图文详解】...
- GDT、LDT和IDT
- 使用Mybatis报错“Type interface com.test.mapper.UserMapper is not known to the MapperRegistry.“
- 华为AI Gallery社区《基于机器学习的欧洲杯赛事预测》技术分析系列——(一)基本原理
- cout 和printf的区别,输出不同
- python调用企业微信接口
- 计算机科学引论答案6,计算机科学引论前六章答案.doc