知道的越多,不知道的越多(微信: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 儒略历-传智杯-练习赛相关推荐

  1. 第四届传智杯 | 练习赛 | python解法思路

    题目列表 导语 A [#4练习赛]符合条件的数 B [#4练习赛]选代表 C [#4练习赛]成绩统计 D [#4练习赛]背答案 E [#4练习赛]击鼓传花 导语 前几天传智杯出了练习赛,博主考研空闲之 ...

  2. 洛谷 T156530 儒略历(传智杯-练习赛)

    T156530 儒略历 题目描述 在 1582 年之前,以 4 为倍数的年份为闰年.正常情况下,一年中一月到十二月的天数分别是 31, 28, 31, 30, 31, 30, 31, 31, 30, ...

  3. 第四届传智杯练习赛题解(c++)

    共五个题,难度一般. 符合条件的数 题目描述: 给出 N 和 k,找到一个不小于 N的正整数,满足这个数中有 k位数字是 3,且尽可能小. 输入格式: 一行,两个整数 N(1 < =N<= ...

  4. 洛谷 T156527 直角三角形(传智杯-练习赛)

    T156527 直角三角形 题目描述 一个直角三角形的两个直角边是 a, b (a≤b),其斜边是 c,且 a,b,c 都是正整数. 现在我们已经知道了斜边长度 c,请问这个直角三角形的两个直角边的长 ...

  5. 第五届“传智杯”全国大学生计算机大赛(练习赛)前四题题解

    第五届"传智杯"全国大学生计算机大赛(练习赛) 练习赛题单链接:传智杯练习赛 仅有会做的前四题题解,还是太弱了( ^ M ^ !!) 第一题 链接:复读 思路: 就是哈希表记录下出 ...

  6. 第五届“传智杯”全国大学生计算机大赛(练习赛)

    前言:这次练习赛对应的洛谷原题分别是B3654.P8547.P8444.P8462.P8827.P5391.有需要的可以去洛谷找原题看题解弄懂自己不会的 官方给的:练习赛满分程序(多语言):云剪贴板 ...

  7. 第五届“传智杯”全国大学生计算机大赛(练习赛)传智杯 #5 练习赛] 平等的交易

    [传智杯 #5 练习赛] 平等的交易 题目描述 你有 n n n 件道具可以买,其中第 i i i 件的价格为 a i a_i ai​. 你有 w w w 元钱.你仅能用钱购买其中的一件商道具.当然, ...

  8. 答案解析(C语言版本)——第五届“传智杯”全国大学生计算机大赛(练习赛)

    目录 A [传智杯 #5 练习赛] 复读 输入输出样例 输入 #1 输出 #1 代码解析如下 B [传智杯 #5 练习赛] 时钟 输入输出样例 输入 #1 输出 #1 输入 #2 输出 #2 输入 # ...

  9. 洛谷随机刷题之传智杯#3

    [传智杯 #3 练习赛] 直角三角形 题目描述 一个直角三角形的两个直角边是 a , b ( a ≤ b ) a,b(a\le b) a,b(a≤b),其斜边是 c c c,且 a , b , c a ...

最新文章

  1. 一些重要的算法The Most Important Algorithms
  2. Salsify:高流畅度的实时视频传输新方式
  3. android实用代码
  4. vue13过滤器 debounce延迟、limitBy、filterBy、orderBy
  5. 【codevs2131】【BZOJ1924】所驼门王的宝藏,tarjan+拓扑DP
  6. vue 实现无限轮播_Vue 实现无缝轮播
  7. 【转】Struts2中json插件的使用
  8. Nsrp实现juniper防火墙的高可用性【HA】!
  9. oracle24550,ORA-24550: signal received:这个问题的原因及解决办法
  10. [福大软工] Z班 软件工程实践总结 作业成绩
  11. 中心极限定理_达尔文的进化论正确吗?
  12. Builder中使用Access数据库
  13. 嵌入式C语言编码规范
  14. 计算机win7安装打印机,Win7系统怎么安装打印机 win7安装打印机的方法【图文详解】...
  15. GDT、LDT和IDT
  16. 使用Mybatis报错“Type interface com.test.mapper.UserMapper is not known to the MapperRegistry.“
  17. 华为AI Gallery社区《基于机器学习的欧洲杯赛事预测》技术分析系列——(一)基本原理
  18. cout 和printf的区别,输出不同
  19. python调用企业微信接口
  20. 计算机科学引论答案6,计算机科学引论前六章答案.doc

热门文章

  1. 思科将以6.35亿美元收购网络安全公司OpenDNS
  2. lytro 光场相机 重聚焦
  3. 如何从CCleaner清理中排除项目
  4. AWS第一个云计算服务—S3
  5. 《智力是什么》读书笔记
  6. 【IEEE出版】工业自动化,机器人与控制工程国际会议(IARCE 2022)
  7. 已经快失传的面诊、舌诊宝典,终于找齐了(建议收藏)
  8. C++STL详解(一)string类的使用及其模拟实现
  9. C语言程序设计(三)高级特性
  10. Chatgpt如何使用在国内