USACO-Friday the Thirteenth(黑色星期五)-Section1.2<3>
【英文原题】
Friday the Thirteenth
Is Friday the 13th really an unusual event?
That is, does the 13th of the month land on a Friday less often than
on any other day of the week? To answer this question, write a program
that will compute the frequency that the 13th of each month lands on
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday over
a given period of N years. The time period to test will be from January
1, 1900 to December 31, 1900+N-1 for a given number of years, N. N is
positive and will not exceed 400.
Note that the start year is NINETEEN HUNDRED, not 1990.
There are few facts you need to know before you can solve this problem:
- January 1, 1900 was on a Monday.
- Thirty days has September, April, June, and November, all the rest
have 31 except for February which has 28 except in leap years when it
has 29. - Every year evenly divisible by 4 is a leap year (1992 = 4*498 so
1992 will be a leap year, but the year 1990 is not a leap year) - The rule above does not hold for century years. Century years
divisible by 400 are leap years, all other are not. Thus, the century
years 1700, 1800, 1900 and 2100 are not leap years, but 2000 is a leap
year.
Do not use any built-in date functions in your computer language.
Don't just precompute the answers, either, please.
PROGRAM NAME: friday
INPUT FORMAT
One line with the integer N.
SAMPLE INPUT (file friday.in)
20
OUTPUT FORMAT
Seven space separated integers on one line. These integers represent the number of times the 13th falls on Saturday, Sunday, Monday, Tuesday, ..., Friday.
SAMPLE OUTPUT (file friday.out)
36 33 34 33 35 35 34
【中文翻译】
题目描述
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.
输出格式:
**输出请从周六开始
输入输出样例
20
36 33 34 33 35 35 34
#include<stdio.h>
bool isLeapYear(int year)//判断闰年
{
if(year == || year == || year == || year == || year == || year == || year == ){
if(year % == )
{
return true;
}
}
else if(year % == )
{
return true;//是闰年
}
return false;//不是闰年
}
int main(){
int n;
scanf("%d",&n);
int ans[] = {};
int day = ;
for(int i = ;i < + n;i++)
{
if(isLeapYear(i) == false)
{
for(int j = ;j < ;j++)
{//平年1月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年2月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年3月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年4月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年5月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年6月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年7月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年8月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年9月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年10月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年11月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年12月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
}
else{
for(int j = ;j < ;j++){//闰年1月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年2月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年3月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年4月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年5月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年6月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年7月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年8月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年9月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年10月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年11月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年12月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
}
}
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("\n");
return ;
}
USACO-Friday the Thirteenth(黑色星期五)-Section1.2<3>的更多相关文章
- Friday the Thirteenth 黑色星期五 USACO 模拟 超级简单做法
1003: 1.1.3 Friday the Thirteenth 黑色星期五 时间限制: 1 Sec 内存限制: 128 MB提交: 8 解决: 8[提交] [状态] [讨论版] [命题人:外部 ...
- USACO 1.1.3 Friday the Thirteenth 黑色星期五
Description 13号又是一个星期5.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至 ...
- JZOJ.1002【USACO题库】1.1.3 Friday the Thirteenth黑色星期五
每日一博第一天! 保持你的决心 题目描述 13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二......星期日的 ...
- USACO . Friday the Thirteenth
Friday the Thirteenth Is Friday the 13th really an unusual event? That is, does the 13th of the mont ...
- USACO Section 1.1-3 Friday the Thirteenth
Friday the Thirteenth 黑色星期五 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数. 给出N年的一个 ...
- USACO/friday
Friday the Thirteenth 黑色星期五 描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的 ...
- USACO Section1.1 Friday the Thirteenth 解题报告
friday解题报告 —— icedream61 博客园(转载请注明出处) -------------------------------------------------------------- ...
- USACO Training Section 1.1黑色星期五Friday the Thirteenth
题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...
- USACO Section1.2
section1.1主要包括四道题和两个编程知识介绍.下面将对这6个部分内容进行学习. Your Ride Is Here 这道题没什么难度,读懂题目意思就行:把两个字符串按照题目要求转换成数字,然后 ...
随机推荐
- gsub! 和 gsub
ruby中带“!"和不带"!"的方法的最大的区别就是带”!"的会改变调用对象本身了.比方说str.gsub(/a/, 'b'),不会改变str本身,只会返回一个 ...
- 【转】.net中快捷键的使用
当前行行首:Home 当前行行尾:End 当前文档首行:ctrl+Home 当前文档尾行:ctrl+End 选中当前行: ① 按Home(定位到行首)然后按Shift+Dnd(行尾) {从行首连选 ...
- 【leetcode刷题笔记】Evaluate Reverse Polish Notation
Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...
- android6.0 外部存储设备插拔广播以及获取路径(U盘)【转】
本文转载自:https://blog.csdn.net/zhouchengxi/article/details/53982222 这里我将U盘作为例子来说明解析. android4.1版本时U盘插拔时 ...
- shell 定义变量
注意定义变量的语法: var="ABC" 等号之间不能有空格,否则会报错
- mysql 事件(Event) 总结
1 事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...
- Hadoop- 集群启动详解
NameNode启动过程详解 第一次启动:HDFS格式化后,生成fsimage文件 hdf
- linux-常用指令2
命令链接符 ...
- 简单使用c3p0连接池
首先,c3p0是一个连接池插件 需要jar包: 使用手动配置: /** * 手动配置使用c3p0 * @throws PropertyVetoException * @throws SQLExcept ...
- ajax stream 一边下载二进制数据一边处理
最近有在做 stream 下载,并且边下载 stream 边处理功能.解析二进制的功能.最初参考了 flv.js 的 flv stream 下载处理功能,发现他并没有使用的 XMLHttpReques ...