蓝桥杯:矩形总面积(Java)
问题描述
平面上有个两个矩形R1和R2,它们各边都与坐标轴平行。设(x1, y1)和(x2 ,y2)依次是R1的左下角和右上角坐标,(x3, y3)和(x4, y4)依次是R2的左下角和右上角坐标,请你计算R1和R2的总面积是多少?
注意:如果R1和R2有重叠区域,重叠区域的面积只计算一次。
输入格式
输入只有一行,包含8个整数,依次是:x1, y1, x2, y2 , x3 ,y3,x4和y4。
2 1 7 4 5 3 8 6
输出格式
一个整数,代表答案。
22
代码实现
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int x1 = scan.nextInt();
int y1 = scan.nextInt();//1左下
int x2 = scan.nextInt();
int y2 = scan.nextInt();//1右上
int x3 = scan.nextInt();
int y3 = scan.nextInt();//2左下
int x4 = scan.nextInt();
int y4 = scan.nextInt();//2右上
//总面积减去重叠面积
long res = (long) (x2 - x1) * (y2 - y1) + (long) (x4 - x3) * (y4 - y3);//计算总面积
//计算重叠面积的宽和高
long width = Math.min(x2, x4) - Math.max(x1, x3);//右上较小横坐标与左下较大横坐标之差
long high = Math.min(y2, y4) - Math.max(y1, y3);//右上较小纵坐标与左下较大纵坐标之差
//判读那是否存在重叠面积
if (width > 0 && high > 0) {
//存在:则减去重叠面积
res -= width * high;
}
System.out.println(res);//打印结果
scan.close();
}
}
原文地址:https://blog.csdn.net/qq_61888137/article/details/136443540
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!