设置一个vip隐私,夹杂一些碎碎念......涉及到一些转自其他佬的题解
🚩flag为留存,等技术强硬再钻一把......
2024.2.12
1.分数表示
from fractions import Fraction
sum = 0
for i in range(20):
sum += Fraction(1/(2**i))
i+=1
print(sum)
库函数fractions的Fraction
2.日期问题
from datetime import*
a=0 #用于累加计数
start=date(1901,1,1)
end=date(2000,12,31)
while start<=end:
if start.weekday()==0:
a+=1
start+=timedelta(days=1)
print(a)
datetime模块
3.顺子日期
res = 0
for i in range(1, 13):
for j in range(1, 32):
s = "2022%02d%02d" % (i, j)
if "012" in s or "123" in s:
res += 1
print(res)
# 腊月是十二月
占位符
#整数占位符
>>> a = "好好%d好" % (100)
>>> print(a)
好好100好
#%4d 占4位,原字符串默认居右
>>> a = "好好%4d好" % (100)
>>> print(a)
好好 100好
#%-4d 占4位,原字符串默认居左
>>> c = "好好%-4d好" % (100)
>>> print(c)
好好100 好
#%04d 占4位,0补位
>>> d = "好好%04d好" % (100)
>>> print(d)
好好0100好
2024.2.13
4.修剪灌木
N = int(input("请输入灌木的数量:"))
for i in range(N):
l_d = i # 距离最左端点的距离
r_d = N - 1 - i # 距离最右端点的距离
max_height = 2 * max(l_d, r_d) # 最大高度为距离两端点的距离的两倍
print(max_height)
5.最少砝码
import os
import sys
# 请在此输入您的代码
N =int(input())
w=1
num=1
while w<N:
w=w*3+1
num+=1
print(num)
解析:
结果应该是最少的砝码数量
首先,如果要称的重量为1的话,只能选择重量为1的砝码,1是必选的一个砝码。
然后再称比1重的,反正都是要再加砝码,那我们为何不选一个能称的重量尽可能大的呢。
选1、2的砝码可以满足1=1,2=2,1+2=3
选1、3的砝码可以满足1=1,2=3-1,3=3,4=3+1
选1、4的砝码可以满足1=1,2=?无法称2,不合题意
因此我们选择的砝码组合是1、3,此时我们可以称的最大重量为4
当我们还需要再增加砝码时
同理可得
选1、3、9的组合可以满足小于等于13(13=1+3+9)的所有重量
比如说我定义的砝码是1 3 9 3n
1砝码的最大重量值 1
2砝码的最大重量值 4
3 131个砝码最大称到1
2个砝码最大称到43个砝码最大称到13
推出公式为:新一级的砝码最大称重=上一级砝码上限 × 3 + 1
2024.2.14
6.成绩分析
代码学习max min;小数点表示
n=int(input())
lis=list()
for i in range(n):
lis.append(int(input()))
print(max(lis))
print(min(lis))
print("{:.2f}".format(sum(lis)/n))
input函数 输入多个值
7.合法日期
代码注意同时需要y的范围,否则通过率只有80%/(ㄒoㄒ)/~~
代码学习,datetime模块运用
import os
import sys
# 请在此输入您的代码
import datetime
m=int(input())
d=int(input())
try:
a=datetime.date(2021,m,d)
print('yes')
except:
print('no')
技巧
day = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
m, d = int(input()), int(input())
print('yes'