2018年蓝桥杯省赛A组第二题 星期一

题目

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

猜你喜欢

转载自blog.csdn.net/qq_37291934/article/details/88701344