2023年第十四届蓝桥杯省赛真题Python A组.A:特殊日期

题号:3495

问题描述

记一个日期为yy年mm月 dd 日,统计从 2000年1月1日(含)到2000000年1月1日(含),有多少个日期满足年份yy是月份 mm的倍数,同时也是 dd 的倍数。 当年份是 4 的倍数而不是 100 的倍数或者年份是 400 的倍数时,这一年是闰年,其他的年份都不是闰年。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

代码:

def leap(x):  # 定义一个函数,用来判断闰年
  return x % 400 == 0 or x % 4 == 0 and x % 100 != 0
n = 0
day = [31,28,31,30,31,30,31,31,30,31,30,31]   # 每月多少天
for i in range(2000, 2000000):   # 年
  if leap(i) == 1:
    day[1] = 29
  else:
    day[1] = 28
  for j in range(1, 13): # 月
    for k in range(1, day[j-1] + 1):  # 日
      # 判断是否满足年份yy是月份 mm的倍数,同时也是 dd 的倍数
      if (i % j == 0) and (i % k == 0):
        n += 1

n += 1  # 还有20000000.1.1这个日期,所以循环完最后在加1
print(n) # 输出35813063

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值