Python基础习题——矩形相交

【问题描述】平面上有两个矩形A和B,其位置是任意的。编程求出其相交部分(即重叠部分)的面积。(0<a,b<1000)

【输入文件】从标准输入读取两行以空格分隔的整数,格式如下:
Ax1 Ay1 Ax2 Ay2
Bx1 By1 Bx2 By2
其中(x1,y1)为矩形一个顶点座标,(x2,y2)为前一顶点的对角顶点座标。各座标值均为整数,取值在0至1000之间。
【输出文件】向标准输出打印一个整数,是两矩形相交部分的面积(可能为0)。在输出末尾要有一个回车符。
【输入样例】
0 0 2 2
1 1 3 4
【输出样例】
1
【样例说明】输入的两个矩阵的相交面积为1
在这里插入图片描述

源码如下:

Ax1,Ay1,Ax2,Ay2 = [int(a) for a in input().split()]
Bx1,By1,Bx2,By2 = [int(a) for a in input().split()]
MAX_AX = max(Ax1,Ax2)
MIN_AX = min(Ax1,Ax2)
MAX_BX = max(Bx1,Bx2)
MIN_BX = min(Bx1,Bx2)

MAX_AY = max(Ay1,Ay2)
MIN_AY = min(Ay1,Ay2)
MAX_BY = max(By1,By2)
MIN_BY = min(By1,By2)

xshang = min(MAX_AX,MAX_BX)-max(MIN_AX,MIN_BX)
yshang = min(MAX_AY,MAX_BY)-max(MIN_AY,MIN_BY)

if xshang <= 0 or yshang <= 0:
print(0)
else:
print(xshang*yshang)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值