dots = [(i, j) for i inrange(20) for j inrange(21)] # 生成所有点
lines = set()
for i inrange(len(dots)):
for j inrange(i+1, len(dots)):
if dots[j][0]-dots[i][0] != 0:#两点的x坐标不相等时进入下面,也是保证了分母不为0
x1, x2 = dots[i][0], dots[j][0]
y1, y2 = dots[i][1], dots[j][1]
k = (y2-y1)/(x2-x1)
b = (y1*(x2-x1)-x1*(y2-y1))/(x2-x1) # 这么写不会炸精度
lines.add((k, b))
print(len(lines)+20)#+20是上面排除的垂直与x轴的情况
最后结果为:40257
试题C:货物摆放
法一、暴力
n=2021041820210418
res=0for i inrange(1,n+1):
for j inrange(1,n+1):
for k inrange(1,n+1):
if i*j*k==n:
res+=1# print(i,j,k)print(res)
跑不出结果,n太大了
法二、在遍历之前筛掉不是n的因数的
from math import *
n=2021041820210418
res=0
x=[]
for i inrange(1,int(sqrt(n))+1):
if n%i==0:
if i notin x:
x.append(i)
if((n//i) notin x):
x.append(n//i)
for i in x:
for j in x:
for k in x:
if i*j*k==n:
res+=1print(res)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人