一、跑步
# 解
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博客