版权声明:转载无所谓的。。。 https://blog.csdn.net/xuxiayang/article/details/82949712
大意
求 年 月 日到 年 月 日中每个月的13号都有几个星期一,星期二,星期三……
思路
暴力模拟
代码
#include<cstdio>
using namespace std;int year=1900,month=1,day=1,date=1,n,ans[8];
const short mday[13]={29,31,28,31,30,31,30,31,31,30,31,30,31};//对应每个月的天数,mday[0]表示闰年二月
signed main()
{
scanf("%d",&n);
while(year!=1900+n-1||month!=12||day!=31)//当没到的时候就一直加
{
date=date%7+1;day++;if(day==13)ans[date]++;//计算
if(year%100!=0&&year%4==0||year%400==0)
if(month==2) {if(day>mday[0]) month++,day=1;}//二月特殊处理
else {if(day>mday[month]) month++,day=1;}
else if(day>mday[month]) month++,day=1;
if(month==13) year++,month=1;//记得处理年份
}
printf("%d %d %d %d %d %d %d",ans[6],ans[7],ans[1],ans[2],ans[3],ans[4],ans[5]);//输出
}