ZOJ 3876 May Day Holiday[通俗易懂]

ZOJ 3876 May Day Holiday

大家好,又见面了,我是全栈君。

As a university advocating self-learning and work-rest balance, Marjar University has so many days of rest, including holidays and weekends. Each weekend, which consists of Saturday and Sunday, is a rest time in the Marjar University.

The May Day, also known as International Workers’ Day or International Labour Day, falls on May 1st. In Marjar University, the May Day holiday is a five-day vacation from May 1st to May 5th. Due to Saturday or Sunday may be adjacent to the May Day holiday, the continuous vacation may be as long as nine days in reality. For example, the May Day in 2015 is Friday so the continuous vacation is only 5 days (May 1st to May 5th). And the May Day in 2016 is Sunday so the continuous vacation is 6 days (April 30th to May 5th). In 2017, the May Day is Monday so the vacation is 9 days (April 29th to May 7th). How excited!

Edward, the headmaster of Marjar University, is very curious how long is the continuous vacation containing May Day in different years. Can you help him?

Input

There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case, there is an integer y (1928 <= y <= 9999) in one line, indicating the year of Edward’s query.

Output

For each case, print the number of days of the continuous vacation in that year.

Sample Input

3
2015
2016
2017

Output

5
6
9

之所以记下这个题,是想提醒一下自己写关于闰年的题目时一定要用闰年规则进行判断,别直接除4!!!

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<cmath>
#define ls (u<<1)
#define rs (u<<1|1)
#define maxn 1010
#define ll long long
#define INF 1e9
using namespace std;
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
int d[maxn],c[maxn];
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        int n,num;
        scanf("%d",&n);
        int a = 0;
        for(int i=1929;i<=n;i++){
            if((i%4==0 && i%100!=0) || (i%400==0)){
   
   //记得要用闰年规则判断
                a ++;
            }
        }
        int b = n - 1928 - a;
        num = a*366 + b*365;//把从1928年5.1到n年5.1的天数算出来就行
        num %= 7;
        num += 2;
        num %= 7;
        if(num == 0 || num == 2){
            printf("6\n");
        }
        else if(num == 1){
            printf("9\n");
        }
        else if(num>=3&&num<=6){
            printf("5\n");
        }
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/l609929321/p/7295905.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108266.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 简述计算机的发展史和应用领域_简述计算机的发展史

    简述计算机的发展史和应用领域_简述计算机的发展史计算机发展史`分类和应用领域第1章计算机基础知识计算机发展史、分类和应用领域数值、字符、汉字和图像编码计算机组成和原理计算机安全基础知识1.1计算机概述计算机技术的迅猛发展,促使人类走向丰富多彩的信息社会。信息时代的生产方式和生活方式具有数字化、集成化、智能化、移动化、个性化等特点。1.1.1计算机的发展世界上第一台电子数字式计算机ENIAC于1946年2月15日诞生在美国宾夕法…

    2022年10月11日
  • 时间倒计时代码

    简单易用的倒计时js代码-站长素材*{margin:0;padding:0;list-style:none;}body{font-size:18px;text-align:center;}.time{height:30px;padding:200px;}          00天       00时       00分   

  • 差分数组技巧

    差分数组技巧一、差分数组适用题型,和技巧前缀和数组:适用于原始数组不会被修改的情况下,频繁查询某个区间的累加和差分数组:主要适⽤场景是频繁对原始数组的某个区间的元素进⾏增减(比如:给你和数组arr,然后再下标0-4之间各元素加一,2-5之间各个元素减2,求最终的原数组)差分数组技巧1.构建差分数组(diff),diff[0]=nums[0],之后diff[i]=nums[i]-nums[i-1]int[]diff=newint[nums.length];//构造差分数组diff[0]=n

  • ods数据库是什么意思_数据仓库ods层和dw层的区别

    ods数据库是什么意思_数据仓库ods层和dw层的区别这两天看书,发现了和数据仓库相关的还有一个叫ODS的概念,它是企业级的全局数据库,用于提供集成的,企业级一致的数据,包含如何从各个子系统中向ODS抽取数据以及面向主题的角度存储数据。它和数据仓库的主要区别:数据仓库是面向主题的、集成的、随时间变化的、非易失的、用于进行战略型决策的数据集合。ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息…

  • strstr函数 C++

    strstr函数 C++strstr函数分类: C/C++2011-08-1310:00 696人阅读 评论(0) 收藏 举报函数名:strstr功能:在串中查找指定字符串的第一次出现用法:char*strstr(char*str1,char*str2);程序例:#include#includeintmain(void){

  • 参数估计

    参数估计

    2021年11月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号