当前位置: 首页 > news >正文

济宁网站建设有限公司seo按照搜索引擎的

济宁网站建设有限公司,seo按照搜索引擎的,全球营销策划公司排名,重庆建设传动科技有限公司这道题,我做了三年,平均每年做一次,我来讲讲我的心得。 读题 题面很长,细节很多,我们需要耐心细心的读,此时多花一点时间是划得来的。 我们得出大致关系如下 历法公历日常用历儒略历公元前公元后历法公历…

这道题,我做了三年,平均每年做一次,我来讲讲我的心得。

读题

题面很长,细节很多,我们需要耐心细心的读,此时多花一点时间是划得来的。

我们得出大致关系如下

 

历法公历日常用历儒略历公元前公元后历法公历日常用历儒略历公元前公元后历法{公历(日常用历)儒略历{公元前公元后

我们对公历都有一定的了解吧,比如 平年十二个月的天数, 比如小学教的 “一三五七八十腊”,四年一闰百年不闰四百年又闰,这些宝贵的经验将成为我们解题的关键说的呢。

格里高利相较于公历其实更为简单,因为太简单不准所以才改的嘛 ,就是闰年的计算规则不同,是每四年一闰。

解题

首先,这是一道人尽皆知的模拟题。模拟的概念太笼统了,实现起来也八仙过海,我来讲讲我觉得最适合入手这道关于日期的大模拟。

解题的方向

我们要想着化繁为简,一个劲的分类讨论不见得总是好事(我第一次就这么G的)。

多想想在 coding , 写代码的时间总是小于调 bug 的时间的。

我的思路

我们发现,将日期分为儒略历和公历是比较好的,将公元前的日期归化到儒略历的一部分,不用特殊处理,具体来讲,将公元前的日期年份 y −>  −y+1 比如BC 4713 变为 -4712 ,这阳处理闰年也方便。

我们来算一下儒略历一共多少天

首先公元前天数 365 * 4713 + 4713 / 4

公元后的天数1581 * 365 + 1581 / 4 + 277 1582(不含)年以前的和1582年的277天。

总共 2299160 天。

对于较简单的儒略历,我们可以直接算

int y = -4712, m = 1, d = 1;if (x <= Ru) {y += x / (_1 * 4 + 1) * 4;x %= (_1 * 4 + 1);while(x >= (_1 + (y % 4 == 0))) x -= (_1 + (y % 4 == 0)), y++;while(x >= (M[m] + (m == 2 && y % 4 == 0))) x -= (M[m] + (m == 2 && y % 4 == 0)), m++;d += x;if (y < 1) {cout << d << ' ' << m << ' ' << 1 - y << ' ' << "BC" << endl;} else {cout << d << ' ' << m <<' ' << y << endl;}}

代码中(M[m] + (m == 2 && y % 4 ==0) 是处理闰年的二月日期(28->29)

注意的是, 1 1 4713 BC 是第0天

对于周期的存储,我们可以这样//公历下

int _1 = 365, _4 = 4 * _1 + 1, _100 = 25 * _4 - 1, _400 = _100 * 4 + 1; //100,400是公历下的
int M[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

对于公历, 我们考虑将1582 10 15 到 1982 10 14日这400年打一个小表,这样极大简化了我们的计算量

else {x -= Ru;y = 0;y += x / _400 * 400; x %= _400;cout << a[x].d << ' ' << a[x].m << ' ' << y + a[x].y << endl;  }

其中a是打出来的表,a[x]是四百年中的第几天,10月15 日算第一天。

那么,怎么打出这个表?

答:用手打 可以用结构体。

struct dt{int y, m, d;dt(){}dt(int _y, int _m, int _d) {y = _y, m = _m, d = _d;}
}a[maxn], be = {1582, 10, 15};

然后四百年迭代一遍

 dt v = be;for (int i = 1; i <= _400; i++) {a[i] = v;nxt(v);}

我们只需处理简单的一天的日期跳转

void nxt(dt &x) {x.d++;if (x.d > (M[x.m] + ck(x))) {x.d -= (M[x.m] + ck(x));x.m++;}if (x.m > 12) {x.m = 1;x.y++;}
}

ck 是处理闰年二月

bool ck(dt x) {if (x.y % 4 == 0 && x.y % 100 != 0 || x.y % 400 == 0) {return x.m == 2;} else return 0;
}

于是,我们便做完了这道大模拟。

http://www.hkea.cn/news/944856/

相关文章:

  • 团购做的比较好的网站营销推广ppt
  • 网站怎么做网站地图重庆网站制作公司哪家好
  • wordpress改地址后打不开seo品牌优化整站优化
  • 网页设计师证书含金量高吗百度网络优化
  • 咸阳网站开发长沙seo优化公司
  • 网站通cms国内十大搜索引擎排名
  • centos7安装 wordpress网站如何进行seo
  • 设计师灵感网站美国今天刚刚发生的新闻
  • 重庆南岸营销型网站建设公司推荐竞价sem托管
  • 深圳做二维码网站建设什么是互联网营销
  • 网易企业邮箱收费标准百色seo关键词优化公司
  • 做网站的财务需求张北网站seo
  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描
  • 域控制网站访问自媒体视频发布平台
  • 广西住房和城乡建设委员会网站湖南网站营销seo多少费用
  • 关键词推广名词解释百度竞价关键词怎么优化
  • 群辉服务器做网站网络优化的内容包括哪些
  • 做淘客的网站岳阳seo
  • 网吧设计方案seox
  • 谁做网站市场营销专业
  • 慈溪外贸公司网站网络营销就业前景和薪水
  • 电商网站建设实训报告长沙网站seo推广公司