目录
- 问题描述
- 输入格式
- 输出格式
- 代码实现
问题描述
平面上有个两个矩形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();}
}