python矩形面积周长例题_[蓝桥杯][基础练习VIP]矩形面积交-题解(Python代码)

解题思路:

很容易看出相交的面积 S = (x2-x3)(y2-y3), 仔细发现x2,x3是相交矩形的左右边的x坐标。y2,y3是相交矩形的上下边的y坐标。

进一步分析,相交矩形的左边线是两个矩形的左下标的x值的相比较大的一个也就是上图的x3,相交矩形的左边线是两个矩形的右上标的y值的相比较小的一个也就是上图的y2,所以我们可以得出

rx = min(max(x1,x2),max(x3,x4))

lx = max(min(x1,x2),min(x3,x4))

上下边的y坐标也是此规律。

注意事项:

加个判断是否相交。

参考代码:xy1 = list(map(float,input().split()))

xy2 = list(map(float,input().split()))

rx = min(max(xy1[0],xy1[2]),max(xy2[0],xy2[2]))

lx = max(min(xy1[0],xy1[2]),min(xy2[0],xy2[2]))

uy = min(max(xy1[1],xy1[3]),max(xy2[1],xy2[3]))

dy = max(min(xy1[1],xy1[3]),min(xy2[1],xy2[3]))

w,h = rx-lx,uy-dy

if w<=0.0 or h<=0.00:

print("0.00")

else:

#print((str(w*h)+"00").split(".")[0]+"."+(str(w*h)+"00").split(".")[1][:2:])    不进位输出小数点后两位

print("%.2f"%(w*h))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值