倪文迪陪你学蓝桥杯2021寒假每日一题:1.14日(2018省赛A组第2题)

2022-07-25,

2021年寒假每日一题,2017~2019年的省赛真题。
本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供。
后面的每日一题,每题发一个新博文,请大家每天博客蓝桥杯专栏: https://blog.csdn.net/weixin_43914593/category_10721247.html

每一题提供C++、Java、Python三种语言的代码。

文章目录

  • 1、题目描述
  • 2、题解
  • 3、C++代码
  • 4、Java代码
  • 5、Python代码

2018省赛A组第2题,题目链接:
星期一 http://oj.ecustacm.cn/problem.php?id=1360

1、题目描述


整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?


2、题解

  填空题,送分题。
  倪文迪说:“算一下题目要求中一共的天数,再翻翻日历看2000年12月31日是周日,根据总天数sum除以7和mod7的结果加以判断即可。”
  罗老师再次无话可说。
  还是说一句废话:电脑桌面右下角点击日期,可以查星期几,时间范围是100年,就是1921-2021年。

3、C++代码

#include<bits/stdc++.h>
using namespace std;

int main(){
	int sum = 0;
	for(int i = 1901 ; i <= 2000 ; i++){
		if((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) //计算闰年
			sum += 366;
		else
            sum += 365;
	}
  //cout << sum % 7 << endl; // 6  看看余数,是不是包括了周一。2000年12.31日是周日
	cout << sum / 7 << endl; // 5217

	return 0;
}

4、Java代码

public class Main { 
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1901; i <=2000; i++) {
            if ((i%4==0 && i%100!=0) || i%400==0)
                sum += 366;
            else 
                sum += 365;             
        }
        System.out.println(sum/7); 
    } 
}

5、Python代码

  Python大法好!就是好!

sum = 0
for i in range(1901,2001):
    if (i%4==0 and i%100!=0) or (i%400==0):
        sum += 366
    else:
        sum += 365
#print(sum % 7) #看看余数
print(sum//7)

本文地址:https://blog.csdn.net/weixin_43914593/article/details/112555227

《倪文迪陪你学蓝桥杯2021寒假每日一题:1.14日(2018省赛A组第2题).doc》

下载本文的Word格式文档,以方便收藏与打印。