T156530 儒略历

题目链接: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

输出格式

输出一个整数表示答案

输入输出样例:

输入 #1

1JAN1

输出 #1

0

输入 #2

4OCT1582

输出 #2

577736

输入 #3

15OCT1582

输出 #3

577737

输入 #4

21NOV2020

输出 #4

737751

思路:纯模拟

正确代码:

#include<iostream>
#include<stdio.h>
using namespace std;
int k[13]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int moth(string s){if(s=="JAN") return 1;if(s=="FEB") return 2;if(s=="MAR") return 3;if(s=="APR") return 4;if(s=="MAY") return 5;if(s=="JUN") return 6;if(s=="JUL") return 7;if(s=="AUG") return 8;if(s=="SEP") return 9;if(s=="OCT") return 10;if(s=="NOV") return 11;if(s=="DEC") return 12;
}
int nian1(int y){if((y%4==0)) return 1;return 0;
}
int nian2(int y){if((y%4==0&&y%100!=0)||(y%400==0)) return 1;return 0;
}
int  day( int y,int m,int d){long long sum=0;for(int i=1;i<y;i++){int p=365;if(i<1582){if(nian1(i)){p++;}  }else{if(nian2(i)){p++;} }sum+=p;}k[2]=28;for(int i=1;i<m;i++){if(y<1582){if(i==2&&nian1(y)){k[2]=29;}     }else{if(i==2&&nian2(y)){k[2]=29;} }sum+=k[i];}sum+=d;sum--;if(y>1582){sum-=10;}else if(y==1582){if(m>10){sum-=10;}else if(m==10){if(d>=15){sum-=10;}}}//cout<<k[2]<<endl;return sum;
}
int main(){string s;while(cin>>s){int d=0,m=0,y=0;int len=s.length();int f=0;string str="";for(int i=0;i<len;i++){if(f==0){if(s[i]>='0'&&s[i]<='9'){d=d*10+(s[i]-'0');}else{f=1;}}if(f==1){if(s[i]>='A'&&s[i]<='Z'){str+=s[i];}else{f=2;}}if(f==2){if(s[i]>='0'&&s[i]<='9'){y=y*10+(s[i]-'0');}}}m=moth(str);cout<<day(y,m,d)<<endl;}return 0;
}

洛谷——T156530 儒略历相关推荐

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

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

  2. 洛谷T156530 儒略历详解

    昨天参加了传智杯的练习赛,里面有一题卡了我很久,今天整理一下记录到博客. 文章目录 题目描述 输入格式 输出格式 样例 思路 变量定义 接受输入 第一部分 第二部分 输出 代码实现 题目描述 输入格式 ...

  3. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  4. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  5. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  6. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  7. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  8. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

  9. 记忆优化搜索(简单题)(洛谷P3183 [HAOI2016]食物链 )( P5635 【CSGRound1】天下第一 )

    昨天做了蓝桥杯的时候,发现自己对于记忆优化搜索甚是不熟悉,所以今天随便找了几个基础题做做,顺便写下两片题解,顺便用了一下devc++敲的代码,发现没有代码补全真的可以说是灰常难受了... 洛谷P318 ...

最新文章

  1. 数据结构实验之串一:KMP简单应用
  2. arm linux应用调用rtc接口,ARMLinux驱动RTC(实时时钟)驱动分析
  3. w5100 网上资料整理
  4. 前端学习(3002):vue+element今日头条管理--模块介绍
  5. LoadLibrary 失败 GetLastError 126
  6. 异常将上下文初始化事件发送到类的侦听器实例._Java CLassLoader类加载器详解,一点课堂(多岸学院)...
  7. 马斯克的挖隧道公司再下一城,未来或将首次实现短途通勤
  8. open vswitch常用操作
  9. cassandra学习笔记一
  10. [导入]设置wap服务器
  11. 全网首发:GB18030制定者站出来,$为什么要显示为¥,给大家解释一下
  12. php文字音频插件下载安装,Goodhertz音频插件下载
  13. 计算机模拟 matlab,MATLAB计算机模拟实例课件.ppt
  14. 电路布线问题(迷宫问题)
  15. cass道路设计教程_(完整版)南方CASS7.1绘制道路断面图教程
  16. C基础:程序执行时间的计算方法的三种方式
  17. HashMap与HashSet
  18. train_test_split()函数用法
  19. js中日期与时间戳的转换
  20. python Django 模型操作

热门文章

  1. 产品用户手册难写在哪里?
  2. 大学生查重网站有哪些
  3. 入门系列:gdb学习——函数调用时参数传递
  4. oracle中overwrite写法,【学习笔记】Oracle 11G新特性restart的深入研究案例
  5. ava锁机制Synchronized方法简介
  6. mysql查询发生变化的股价_最近半年股价涨跌统计
  7. 电容的种类及特点与性能
  8. linux 服务器CPU被挖矿的一个解决方法
  9. ReadProcessMemory Types of actual and formal var parameters must be identical
  10. 自制微信机器人:群发消息、自动接收好友