ACMNO.47 矩形面积交(有图) 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

网友投稿 908 2022-11-20

ACMNO.47 矩形面积交(有图) 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

ACMNO.47 矩形面积交(有图) 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

题目描述

平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

输入

输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。

输出

输出仅包含一个实数,为交的面积,保留到小数后两位。

样例输入

1 1 3 32 2 4 4

样例输出

1.00

来源/分类

蓝桥杯—基础训练

题目截图:

思路:

给出两个点计算出,最相近的两个点即可。然后两个点再判断是不是不相交合 m1 = max(min(x1,x2),min(x3,x4)); n1 = max(min(y1,y2),min(y3,y4)); m2 = min(max(x1,x2),max(x3,x4)); n2 = min(max(y1,y2),max(y3,y4)); 然后排除不交合的情况·: if(m1 < m2 && n1 < n2){ printf("%.2lf\n",(m2 - m1) * (n2 - n1)); } else printf("0.00\n"); 实在是精彩呀!

求出图中标记的两个点就好啦:

代码

#include#includeusing namespace std; int main(){ double x1,x2,y1,y2; double x3,x4,y3,y4; double m1,n1; double m2,n2; cin>>x1>>y1>>x2>>y2; cin>>x3>>y3>>x4>>y4; m1 = max(min(x1,x2),min(x3,x4)); n1 = max(min(y1,y2),min(y3,y4)); m2 = min(max(x1,x2),max(x3,x4)); n2 = min(max(y1,y2),max(y3,y4)); if(m1 < m2 && n1 < n2){ printf("%.2lf\n",(m2 - m1) * (n2 - n1)); } else printf("0.00\n"); return 0;}

代码截图:

不截图编译结果啦。OJ结果就足够啦!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux CNTOS7 修改网络配置
下一篇:网络应用 axIos +vue的应用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~