题目描述

13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400.

这里有一些你要知道的:

1、1900年1月1日是星期一.

2、4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.

3、年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年).

4、以上规则不适合于世纪年。可以被400整除的世纪年为闰年,否则为平年。所以,1700,1800,1900和2100年是平年,而2000年是闰年.

请不要调用现成的函数

请不要预先算好数据(就是叫不准打表)!

输入输出格式

输入格式:

一个正整数n.

输出格式:

**输出请从周六开始

输入输出样例

输入样例#1: 复制

20

输出样例#1: 复制

36 33 34 33 35 35 34
   有一种似曾相识的感觉。大体思路还是比较明确的,细节实现花了挺多的实现,month数组一开始没给month[0]赋值。。。卡了一会。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define LL long long
 4 int sum[8];
 5 int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 6 bool judge(int x)
 7 {
 8     if((x%4==0&&x%100!=0)||(x%400==0)) return 1;
 9     else return 0;
10 }
11 int main()
12 {
13    int n;
14    cin>>n;
15    int k=6;
16    for(int i=1;i<=n;++i)
17    {
18          if(i==1) sum[k]++;
19          else {
20             k=(k+(month[12])%7)%7==0?7:(k+(month[12])%7)%7;
21             sum[k]++;
22          }
23        int year=1900+i-1;
24        if(judge(year)) month[2]=29;
25        else month[2]=28;
26        for(int j=1;j<=11;++j)
27        {
28            k=(k+(month[j])%7)%7==0?7:(k+(month[j])%7)%7;
29            sum[k]++;
30        }
31    }
32    cout<<sum[6]<<" "<<sum[7];
33    for(int i=1;i<=5;++i)
34     cout<<" "<<sum[i];
35 }

View Code

转载于:https://www.cnblogs.com/Auroras/p/10868826.html

黑色星期五Friday the Thirteenth相关推荐

  1. USACO黑色星期五Friday the Thirteenth

    黑色星期五Friday the Thirteenth 嗯,虽然很水,但细节是真的多. 我闰年判断错了而且while循环都忘了(伤心) 题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为 ...

  2. 黑色星期五 Friday The Thirteenth

    黑色星期五 洛谷P1202 这是一道很奇怪的题 我做了一遍 不会 两天后 会了

  3. 洛谷P1202 [USACO1.1]黑色星期五Friday the Thirteenth

    题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...

  4. [USACO1.1]黑色星期五Friday the Thirteenth

    https://www.luogu.org/problemnew/show/P1202 又学了一招重载++ /* *@Author: STZG *@Language: C++ */ #include ...

  5. 洛谷 P1202 模拟 - 黑色星期五 Friday the Thirteenth

    [题目描述] 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+ ...

  6. USACO Training Section 1.1黑色星期五Friday the Thirteenth

    题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...

  7. 黑色星期五Friday the Thirteenth [USACO 1.2]

    题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...

  8. 【from zero to zero】noip2017

    from zero to zero 洛谷首页的倒计时不知道什么时候就变成了六字开头. 到底还是太弱了. 生病又拖了很多的时间. 听了很多的算法,自己写起来却非常困难. 也许要在累倒前做一些事情呢. 从 ...

  9. Friday the Thirteenth 黑色星期五

    ** Friday the Thirteenth 黑色星期五 ** 解题思路来自NOCOW 题目: 13 号又是星期五是一个不寻常的日子吗? 13 号在星期五比在其他日少吗?为了回答这个问题,写一个程 ...

最新文章

  1. Linux 文件属性
  2. MongoDB的安装和启动方法详解
  3. hadoop hive集群_失眠大数据专家,基于Hadoop不同版本搭建hive集群(附配置文件)
  4. java character类
  5. 关于Debug.exe
  6. 无线路由器天线上绑几个电池,真的会增强发射信号吗?
  7. Logistic逻辑回归用初等数学解读逻辑回归
  8. 华为手机什么时候更新鸿蒙系统_华为鸿蒙2.0系统什么时候可以用 华为鸿蒙2.0系统升级方法介绍[多图]...
  9. 静态网页的基本结构及标签
  10. php 时分秒选择联动,jquery.datepair日期时分秒选择器
  11. Typescript助力项目开发:JS切换TS、TS类型定制与思考
  12. centos 6.7 GRUB配置
  13. 外连接 及 无用的外连接
  14. C语言:浙大版《C语言程序设计(第3版)》题目集 习题5-6 使用函数输出水仙花数 (20 分)
  15. binder机制原理分析(一):ServiceManager 进程启动
  16. 图鉴| IT男什么时候最虚伪?
  17. 中国的研究生在“研究”什么
  18. 一个较为完备的 antd 可视化编辑器实现
  19. oracle服务器 驱动安装教程,oracle服务器 驱动安装
  20. 从土木工程转行到数据科学,这门课程改变了一切

热门文章

  1. js中的json对象和字符串之间的转化
  2. 拿到淘宝offer后的胡思乱想plus面试总结
  3. 线性时间选择问题——分治
  4. MySQL02-升级
  5. 构建一个react项目_您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩。...
  6. 简单两行,实现无线WiFi共享上网,手机抓包再也不用愁了
  7. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门
  8. CSS:当子元素皆浮动,撑开父元素的3种方式
  9. PAT(甲级)2018年冬季考试 7-2 Decode Registration Card of PAT
  10. selenium--iframe之模拟qq空间登录