蓝桥杯-矩形面积交
【摘要】 资源限制时间限制:1.0s 内存限制:512.0MB问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式 输出仅包含一个实数,为交的面积,保留到...
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
输入格式
输入仅包含两行,每行描述一个矩形。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出格式
输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
1 1 3 3
2 2 4 4
2 2 4 4
样例输出
1.00
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//接收坐标点
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
double x3=scanner.nextDouble();
double y3=scanner.nextDouble();
double x4=scanner.nextDouble();
double y4=scanner.nextDouble();
//先判断平行X轴的长度
double max1,min1,max2,min2,x=0.0,maxy1,miny1,maxy2,miny2,y=0.0;
//先判断第一个矩形
if (x1>x2){
max1=x1;
min1=x2;
}else {
max1=x2;
min1=x1;
}
//第二个矩形
if (x3>x4){
max2=x3;
min2=x4;
}else {
max2=x4;
min2=x3;
}
if (max1<=max2 && min1>=min2){
x=max1-min1;//第一个在第二个内
}else if (max2<=max1 && min2>=min1){
x=max2-min2;//第二个在第一个内
}else if (max2>min1 && max2<max1){
x=max2-min1;//包含左边
}else if (min2>min1 && min2<max1){
x=max1-min2;//包含右边
}
//判断平行Y轴的长度
//判断第一个矩形
if (y1>y2){
maxy1=y1;
miny1=y2;
}else {
maxy1=y2;
miny1=y1;
}
//第二个矩形
if (y3>y4){
maxy2=y3;
miny2=y4;
}else {
maxy2=y4;
miny2=y3;
}
if (maxy1<=maxy2 && miny1>=miny2){
y=maxy1-miny1;//第一个在第二个内
}else if (maxy2<=maxy1 && miny2>=miny1){
y=maxy2-miny2;//第二个在第一个内
}else if (maxy2>miny1 && maxy2<maxy1){
y=maxy2-miny1;//包含下边
}else if (miny2>miny1 && miny2<maxy1){
y=maxy1-miny2;//包含上边
}
double num=x*y;//计算面积
System.out.println(String.format("%.2f",num));
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)