蓝桥杯-2018-星期一-c/c++/java/python3

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

整个 202020 世纪(190119011901 年 111 月 111 日至 200020002000 年 121212 月 313131 日之间),一共有多少个星期一?(不要告诉我你不知道今天是星期几)

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

 解法一:python 3
 

import os
import sys

# 请在此输入您的代码
from datetime import *
dt1=datetime(1901,1,1)
dt2=datetime(2000,12,31)
dt=dt2-dt1
print(dt.days//7)

解法二:Python 3
 

import os
import sys

# 请在此输入您的代码
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)

解法三:c++
 

#include <iostream>
using namespace std;
int main()
{
  int sum = 0;
    for (int i = 1901; i <= 2000; i++) {
        if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)) {
            sum += 366;
        }
        else {
            sum += 365;
        }
    }
    //cout << sum % 7<<endl;为6,所以没有到星期一(2000.12.31是星期天)
    cout << sum / 7;

    return 0;

}

解法四:c语言
 

#include<stdio.h>
int main(){
    int year,day,dayrun=0,dayping=0,sumday=0;
    int count=0;
    
    for(year=1901;year<=2000;year++)
    {//找出1901到2000年间闰年有多少,平年有多少 
        if((year%4==0&&year%100!=0)||(year%400==0)){//四年一闰 ,百年不闰,四百年再闰 
            dayrun+=366;//将所有闰年的天数累加 
        } 
        else{
            dayping+=365;//将所有平年的天数累加 
        }
    }
    
    sumday=dayrun+dayping;
    
    for(day=2;day<=sumday-7;day+=7)
    {//1901年1月1号为星期天,所有以2号为起始点,开始累加 
        count++;//记录星期一的天数 
    }
    printf("%d",count);
    return 0;
}

解法五:Java

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值