USACO 1.1.3 Friday the Thirteenth 黑色星期五
2024-09-04 13:56:20
Description
13号又是一个星期5。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400. 这里有一些你要知道的: 1900年1月1日是星期一.4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.年份可以被 4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年)以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900 和2100年是平年,而2000年是闰年.请不要预先算好数据(就是叫不准打表 0。0)!
Input
一个正整数n.
Output
七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一...星期五的次数.
Sample Input
20
Sample Output
36 33 34 33 35 35 34
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int judge(int y)///判断闰年还是平年
{
if((y%==)||(y%==&&y%!=))
{
return ;
}
else
{
return ;
}
}
int main()
{
int n,days,x,i,j;
int m[]= {,,,,,,,,,,,,};
int ans[]={};
scanf("%d",&n);
days=;
for(i=; i<+n; i++)
{
if(judge(i))
{
for(j=; j<=; j++)
{ if(j==)///闰年2月29天
{
x=days%;
days+=m[j]+;///需要多加上一天
ans[x]++; }
else
{ x=days%;
days+=m[j];
ans[x]++;
}
} }
else///平年
{
for(j=; j<=; j++)
{ x=days%;
days+=m[j];
ans[x]++;
}
}
}
printf("%d %d %d %d %d %d %d\n",ans[],ans[],ans[],ans[],ans[],ans[],ans[]);
return ;
}
最新文章
- 软媒魔方 v6.2.1.0 绿色纯净版及经典版
- case when 用法
- Eclipse配置PHP及自动提示功能
- Oracle开发常用函数
- MVC4 自定义错误页面(三)
- SpringMVC、Struts1、Struts2和SSH2框架中单例与多例的解析
- Hibernate Validation注解列表
- 系统级性能分析工具 — Perf
- C# 你不能调用的问题剪贴板线程
- 解决 PHPExcel 长数字串显示为科学计数[转]
- 手把手教你全家桶之React(二)
- eclipse中maven下载不了私服上面的第三方包问题
- []TLD code run
- nagios 配置 check_traffic 流量监控模块(被监控端)
- Android四大组件应用系列5——使用AIDL实现跨进程调用Service
- 转:UML工具Astah的使用
- c#dev tabcontrol 与嵌套gridcontrol 总结
- @Transactional注解使用心得
- 并发编程——ConcurrentHashMap#addCount() 分析
- NetFPGA Demo ——reference_nic_nf1_cml