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 ;
}

最新文章

  1. 软媒魔方 v6.2.1.0 绿色纯净版及经典版
  2. case when 用法
  3. Eclipse配置PHP及自动提示功能
  4. Oracle开发常用函数
  5. MVC4 自定义错误页面(三)
  6. SpringMVC、Struts1、Struts2和SSH2框架中单例与多例的解析
  7. Hibernate Validation注解列表
  8. 系统级性能分析工具 — Perf
  9. C# 你不能调用的问题剪贴板线程
  10. 解决 PHPExcel 长数字串显示为科学计数[转]
  11. 手把手教你全家桶之React(二)
  12. eclipse中maven下载不了私服上面的第三方包问题
  13. []TLD code run
  14. nagios 配置 check_traffic 流量监控模块(被监控端)
  15. Android四大组件应用系列5——使用AIDL实现跨进程调用Service
  16. 转:UML工具Astah的使用
  17. c#dev tabcontrol 与嵌套gridcontrol 总结
  18. @Transactional注解使用心得
  19. 并发编程——ConcurrentHashMap#addCount() 分析
  20. NetFPGA Demo ——reference_nic_nf1_cml

热门文章

  1. PHP的抽象类和抽象方法以及接口总结
  2. Ubuntu之C++开发环境的搭建
  3. jQuery 常用核心方法
  4. Vue解决接口访问跨域问题
  5. mqtt使用二(集成到java代码中)
  6. spring源码-Aware-3.4
  7. spring-boot日志操作
  8. Altium designer18设置原理图尺寸
  9. Redis系列二 Redis数据库介绍
  10. 收集、分析线上日志数据实战——ELK