题目
整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
(不要告诉我你不知道今天是星期几)
注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。
答案 5217
思路 模拟
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
int sum=0,xq=1,key;//sum统计星期一,xq标记1901年1月1日为星期二(从0开始记,所以星期二为1),key判断是否是闰年
int month[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};// 打表
for(int i=1901;i<=2000;i++){
key=0;
if((i%4==0&&i%100!=0)||(i%400==0))// 判断是否为闰年
key=1;
for(int j=1;j<=12;j++){
if(key==1&&j==2){ // 是闰年
for(int k=1;k<=29;k++){
if(xq%7==0) //判断是否为星期一
sum++;
xq++;
}
}
else{ // 不是
for(int k=1;k<=month[j];k++){
if(xq%7==0)
sum++;
xq++;
}
}
}
}
cout<<sum<<endl;
return 0;
}