1.卡片#统计1累计出现的次数
val=0
num=0
while True:
num+=str(val).count('1')
if num>=2021:
print(val)
break
val+=1
2.直线#解析参考这位博主
#直线
x=[i for i in range(20)]
y=[i for i in range(21)]
zuobiao=set()
for i in x:
for j in y:
zuobiao.add((i,j))
zuobiao=sorted(zuobiao)
kb=set()
Tong=set()
for i in range(len(zuobiao)):
for j in range(i+1,len(zuobiao)):
if zuobiao[i][0] !=zuobiao[j][0]:#计算斜率和截距
k=(zuobiao[i][1]-zuobiao[j][1])/(zuobiao[i][0]-zuobiao[j][0])
b=(zuobiao[j][0]*zuobiao[i][1]-zuobiao[i][0]*zuobiao[j][1])/(zuobiao[j][0]-zuobiao[i][0])
# b = (x2 * y1 - x1 * y2) / (x2 - x1) # 截距公式——*建议加强记忆*
kb.add((k,b))
else:
Tong.add(zuobiao[i][0])
print(len(kb)+len(Tong))
3.货物摆放#暴力
货物摆放
import math
n = 2021041820210418
num=0
chushu=set()
for i in range(1,int(math.sqrt(n))+1):
if n%i==0:
chushu.add(i)
chushu.add