题目描述
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
说明
题目翻译来自NOCOW。
附上某神人的强模拟,很强,600行

#include<cstdio>using namespace std;bool isLeapYear(int year){if(year == 1900 || year == 2000 || year == 2100 || year == 2200 || year == 2300 || year == 2400 || year == 2500){if(year % 400 == 0){return true;}}else if(year % 4 == 0){return true;}return false;
}int main(){int n;scanf("%d",&n);int ans[7] = {};int day = 1;for(int i = 1900;i < 1900 + n;i++){if(isLeapYear(i) == false){for(int j = 0;j < 31;j++){//平年1月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 28;j++){//平年2月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//平年3月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//平年4月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//平年5月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//平年6月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//平年7月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//平年8月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//平年9月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//平年10月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//平年11月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//平年12月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}}else{for(int j = 0;j < 31;j++){//闰年1月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 29;j++){//闰年2月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//闰年3月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//闰年4月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//闰年5月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//闰年6月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//闰年7月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//闰年8月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//闰年9月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//闰年10月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 30;j++){//闰年11月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}for(int j = 0;j < 31;j++){//闰年12月 if(j == 13){if(day == 1){ans[day - 1]++;}else if(day == 2){ans[day - 1]++;}else if(day == 3){ans[day - 1]++;}else if(day == 4){ans[day - 1]++;}else if(day == 5){ans[day - 1]++;}else if(day == 6){ans[day - 1]++;}else if(day == 7){ans[day - 1]++;}}day++;if(day > 7){day = 1;}}}}printf("%d ",ans[6]);printf("%d ",ans[0]);printf("%d ",ans[1]);printf("%d ",ans[2]);printf("%d ",ans[3]);printf("%d ",ans[4]);printf("%d ",ans[5]);return 0;
}

USACO Training Section 1.1黑色星期五Friday the Thirteenth相关推荐

  1. USACO Training Section 1.2 双重回文数 Dual Palindrom

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就 ...

  2. USACO Training Section 1.1 坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  3. USACO Training Section 1.1 贪婪的送礼者Greedy Gift Givers

    P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers 题目描述 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少.在这一个问题中,每个人都准备了一 ...

  4. USACO Training Section 1.1 Your Ride Is Here

    题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...

  5. USACO Training Section 3.2 Feed Ratios

    [url="http://ace.delos.com/usacoprob2?a=JbTv7diNbha&S=ratios"]英文原题[/url] [url="ht ...

  6. USACO Training Section 1.3混合牛奶 Mixing Milk

    题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...

  7. USACO Training Section 1.2 [USACO1.2]回文平方数

    题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且 ...

  8. USACO Training Section 1.2 [USACO1.2]方块转换 Transformations

    题目描述 一块N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案.写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 1:转90度:图案按顺时针 ...

  9. USACO Training Section 1.2 挤牛奶Milking Cows

    题目描述 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300秒(从5点开始计时)给他的牛挤奶,一直到1000秒.第二个农民在700秒开始,在 1200秒结束.第三个农民在1500秒开 ...

最新文章

  1. 【C++】C/C++ 中default/delete特性
  2. 可以获取python整数类型帮助的是什么-下列选项中可以获取Python整数类型帮助的是...
  3. java冒泡排序,选择排序,插入排序,希尔排序
  4. 【计算机网络复习 物理层】2.1.1 物理层基本概念
  5. pdf与图片互相转换
  6. Latex 中插入超链接 插入网址
  7. 深度学习《CGAN新认识》
  8. USBCNC导入DXF文件
  9. python数据分析 活用pandas库_Python数据分析:活用Pandas库
  10. 在Ubuntu16.04 安装RabbitVCS
  11. Air202学习(4)官方例程(luat版)
  12. 如何在mysql验证非负数_MySQL数据库- 要求非负数
  13. 基于韦东山视频 regulator 学习笔记
  14. Gluster 常用操作命令
  15. mysql id不重复随机码_MySQL 随机不重复ID,该怎么处理
  16. 51单片机三线串行驱动12864液晶
  17. Windows 七种截图方式 快捷键 系统自带 工具软件
  18. camunda 如何插入或者获取流程审批意见 springboot java实现
  19. Unity-Tilemap 瓦片地图
  20. Spring 02

热门文章

  1. 嵌入式linux+io+优化,嵌入式Linux系统内存优化使用方法研究
  2. mongoDB 小练习
  3. SQL Serever学习7——数据表2
  4. 企业分布式微服务云SpringCloud SpringBoot mybatis (十)Spring Boot多数据源配置与使用Spring-data-jpa支持...
  5. eclipse插件安装方法
  6. python fine函数_python find()函数
  7. nginx搭建静态文件服务器,Nginx 静态文件服务器搭建及autoindex模块解析
  8. linux tar.gz指定目录,tar.gz包内提取某个文件在指定目录下。
  9. c调用c++ qt_【C/C++】qt库结构及示例
  10. JAVA圣诞代码,圣诞节(示例代码)