阿于阿于


私信TA

用户名:rjy975

访问量:291

签 名:

等  级
排  名 40469
经  验 331
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:

注意事项:

参考代码:

a=list(map(float,input().split()))
b=list(map(float,input().split()))
a1=[min(a[0],a[2]),min(a[1],a[3]),max(a[0],a[2]),max(a[1],a[3])]
b1=[min(b[0],b[2]),min(b[1],b[3]),max(b[0],b[2]),max(b[1],b[3])]
#将点的不同情况转化为默认情况
x=min(a1[2],b1[2])-max(a1[0],b1[0])
y=min(a1[3],b1[3])-max(a1[1],b1[1])
#获取相交部分的长,宽
v=x*y
if(b1[0]>a1[2] or b1[1]>a1[3] or b1[2]<a1[0] or b1[3]<a1[1]):
    v=0#判断不相交的情况
print("{:.2f}".format(v))

 方法二:

方法2的情况说明的图在这里面

蓝桥杯 Python 练习题 矩形面积交_阿于阿于的博客-CSDN博客

#重复性很高,很暴力
a1=list(map(float,input().split()))
a2=list(map(float,input().split()))
if(a1[0]>a1[2]):#情况2变成默认
    a1=[a1[2],a1[3],a1[0],a1[1]]
if(a2[0]>a2[2]):
    a2=[a2[2],a2[3],a2[0],a2[1]]
if(a1[1]>a1[3]):#情况1变默认
    a1=[a1[0],a1[3],a1[2],a1[1]]
if(a2[1]>a2[3]):
    a2=[a2[0],a2[3],a2[2],a2[1]]
def x(a1,a2):
    if(a2[2]>a1[2] and a2[0]>a1[0] and a2[0]<a1[2]):#(1)
        x=a1[2]-a2[0]
    elif(a2[2]<=a1[2] and a2[0]>=a1[0]):(2)
        x=a2[2]-a2[0]
    elif(a2[0]<a1[0] and a2[2]<a1[2]):(1)-1
        x=a2[2]-a1[0]
    else:#(3)
        x=0
    if(x<0):
        x=-x
    return x
def y(a1,a2):
    if(a2[3]>a1[3] and a2[1]>a1[1] and a2[1]<a1[3]):
        y=a1[3]-a2[1]
    elif(a2[3]<=a1[3] and a2[1]>=a1[1]):
        y=a2[3]-a2[1]
    elif(a2[1]<a1[1] and a2[3]<a1[3]):
        y=a2[3]-a1[1]
    else:
        y=0
    if(y<0):
        y=-y
    return y
v=x(a1,a2)*y(a1,a2)
print("{:.2f}".format(v))


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区