欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-26 08:16:17
2018省赛A组第2题...

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

每一题提供C++、Java、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

相关标签: 蓝桥杯每日一题