【一眼秒杀】三道蓝桥杯真题(三)

一、跑步

# 解
import datetime
# 创建一个表示2022年1月1日的date对象
start_date=datetime.date(2022, 1, 1)
# 创建一个表示2022年12月31日的date对象  
end_date=datetime.date(2022, 12, 31)
#计算跑步的次数
mun=0
# 使用一个循环来逐日增加
now_date=start_date
while now_date<=end_date:
    if now_date.weekday()in (5,6) or now_date.day in{1,11,21,31}:
        mun+=1
    now_date+=datetime.timedelta(days=1)
print(mun)

# 解2
import datetime

start = datetime.date(2022, 1, 1)
end = datetime.date(2022, 12, 31)
run_day = 0

while start <= end:
    if start.weekday() >= 5 or str(start)[9] == '1':
        run_day += 1
    start += datetime.timedelta(days=1)

print(run_day)

二、进制位数

# 解
#   bin将给定的十进制数转换为二进制字符串,然后减去前缀'0b'的长度。
decimal_number = 2022
binary_number = bin(decimal_number)[2:]

print(len(binary_number))

三、互质

# 解
#  使用math.gcd函数计算它与1018的最大公约数。如果最大公约数等于1,说明i与1018互质,
import math
num = 0
for i in range(1,2021):
  if math.gcd(1018,i)==1:
    num+=1
print(num)

每天持续更新~

上一篇文章: 每日分享三道蓝桥杯真题(二)-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_57467129/article/details/140507841