日期计算 ----蓝桥杯

问题描述

  已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。

输入格式

  输入只有一行

  YYYY MM DD

输出格式

  输出只有一行

  W

数据规模和约定

  1599 <= YYYY <= 2999

  1 <= MM <= 12

  1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期

  1 <= W <= 7,分别代表周一到周日

样例输入

2011 11 11

样例输出

5

代码:

#include <iostream>

#include<cstdio>

#include<cstring>

using namespace std;

int week[3005][15][35];

int month1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};

void count(){

int year=2011, month=11 ,day=11, ans=5;

week[year][month][day] = 5;

while(1){

if(year==3000)

break;

if(year % 400 ==0 || (year%4 == 0 && year % 100 != 0)){

day++;

if(day > month2[month])

{

month++;

day=1;

}

if(month > 12)

{

month=1;

year++;

}

ans++;

if(ans > 7)

ans=1;

week[year][month][day]=ans;

}

else {

day++;

if(day > month1[month])

{

month++;

day=1;

}

if(month > 12)

{

month=1;

year++;

}

ans++;

if(ans > 7)

ans=1;

week[year][month][day]=ans;

}

}

year=2011;

month=11;

day=11;

ans=5;

while(1){

if(year == 1598)

break;

if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))

{

day--;

if(day <= 0){

month--;

if(month <= 0)

day = 31;

else

day = month2[month];

}

if(month <= 0)

{

month=12;

year--;

}

ans--;

if(ans <= 0)

ans=7;

week[year][month][day]=ans;

}

else {

day--;

if(day<=0){

month--;

if(month <= 0)

day=31;

else

day = month1[month];

}

if(month <= 0)

{

month=12;

year--;

}

ans--;

if(ans <= 0)

ans=7;

week[year][month][day]=ans;

}

}

}

int main()

{

count();

int y,m,d;

while(~scanf("%d%d%d",&y,&m,&d))

cout<<week[y][m][d]<<endl;

return 0;

}

时间: 2024-11-03 01:22:28

日期计算 ----蓝桥杯的相关文章

蓝桥杯-算法提高-日期计算

算法提高 日期计算 时间限制:1.0s   内存限制:256.0MB 问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情况. 输入格式 输入只有一行 YYYY MM DD 输出格式 输出只有一行 W 数据规模和约定 1599 <= YYYY <= 2999 1 <= MM <= 12 1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期 1 <= W &

日期类的使用(java)-蓝桥杯

蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime();      // 日期类得到c的时间: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss"); // 修改格式 SimpleDateFormat sdf2 = new SimpleDateFormat(&q

蓝桥杯 - 概率计算 (概率DP)

题目传送:蓝桥杯 - 概率计算 概率计算 时间限制:1.0s   内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率. 输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔. 输出格式 输出一行包含一个小数位和为x的概率,小数点后保留四位小数 样例输入 2 1 3 4 样例输出 0.3333 数据规模和约定 对于50%的数据,n≤5. 对于100%的数据,n≤100,b≤100. 思路:概率DP,好久没做DP题了,居然1A了,

1502131514-蓝桥杯-算法提高 日期计算

算法提高 日期计算 时间限制:1.0s   内存限制:256.0MB 问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情况. 输入格式 输入只有一行 YYYY MM DD 输出格式 输出只有一行 W 数据规模和约定 1599 <= YYYY <= 2999 1 <= MM <= 12 1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期 1 <= W &

2015年蓝桥杯省赛B组C/C++(试题+答案)

首先说,这次我是第二次参加蓝桥杯(大学里最后一次),可这次去连个三等都没拿到,有些心灰意冷,比上一次还差, 当时看到成绩出来的时候有些失落,但是跌倒了,再站起来继续跑就可以了.可能是状态不好吧,纯属自我安慰. 接下来我把今年的题目又重新做了一遍,写下了这篇博客,如果也有需要探讨答案的,希望可以有帮助. 第一题: 第1题:统计不含4的数字 题目大意 统计10000至99999中,不包含4的数值个数. 解题分析: 第一种解法: 数学方法,这种是在网上看到的一种解法: 最高位除了0.4不能使用,其余8

第六届蓝桥杯本科B组C++省赛题解

比赛结束已经一星期了,成绩也出来了,江苏非211组的省前十,但是深感自己还是有太多的不足.绝对不能以自己还只是大一为借口,acm这条路还长的很. 目测得了95分(满分150),第一题错了,代码填空第一题错了,倒数第二题扣了一点分,最后一道大题全错. 之所以会这么晚来发这道题解,是因为深感自己不足,倒数第二题之所以没有做出来,是因为自己居然不会用[矩阵快速幂].因此,现学现用以自省. 关于题目:所有填空题都可以纯暴力,只要会回溯剪枝法对于蓝桥杯已经足够了.大题目难度一年比一年高 第一题 结果填空

第四届蓝桥杯 c/c++真题

第四届蓝桥杯 c/c++真题 <1>高斯日记 问题 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天.这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日. 在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日. 高斯获得博士学位的那天日记上标着:

2015 蓝桥杯:2.星系炸弹

*/--> pre.src {background-color: Black; color: White;} 2015 蓝桥杯:2.星系炸弹 在 X 星系的广袤空间中漂浮着许多 X 星人造"炸弹",用来作为宇宙中的路标. 每个炸弹都可以设定多少天之后爆炸. 比如:阿尔法炸弹 2015 年 1 月 1 日放置,定时为 15 天,则它在 2015 年 1 月 16 日爆炸. 有一个贝塔炸弹,2014 年 11 月 9 日放置,定时为 1000 天,请你计算它爆炸的准确日期. 请填写该

2015第六届蓝桥杯全国软件大赛省赛(预赛)总结

这是我上大学以来第一次自发的写总结,这也许意味着我对大学的看法和接下来的大学生活都将有所改变吧.首先说说引导我写这篇总结的"人物"吧,RUI,从大一开始便是同学,直到大三成为了舍友.他的成绩一直很好,如果没记错的话,大一专业第一名,大二好像也是第一第二的,总之在班里一直名列前茅,在学习成绩里边,最让我羡慕的就是他的英语了,四级和六级都是一次过,并且,六级考了500多分(具体多少记不清了),呃...除了学习成绩好之外,专业能力更是没的说,在大一就加入了学院里的ACM实验室,编程能力那也是