题目描述
平面上有个两个矩形 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
啊啊啊起晚了,这个题最后没有解决掉,自己的代码不知道问题出在了哪里
样例输出是22 我的代码是-22😅
没看出来问题,今天时间不够啦,留个小尾巴,后面再解决吧
拿到这道题,我先把图画出来了😅没啥思路,规律摸不透,最后看题解啦~(ง •_•)ง
思路如下
import java.util.Scanner ;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x1 = sc.nextInt();
int x2 = sc.nextInt();
int x3 = sc.nextInt();
int x4 = sc.nextInt();
int y1 = sc.nextInt();
int y2 = sc.nextInt();
int y3 = sc.nextInt();
int y4 = sc.nextInt();
//S1,S2面积
int S1 = (x2 - x1) * (y2 - y1);
int S2 = (x4 - x3) * (y4 - y3);
//选出重叠区域左下角
int intI = Math.max(x1, x3);
int intJ = Math.max(y1, y3);
//选出重叠区域右上角
int intI_ = Math.min(x2, x4);
int intJ_ = Math.min(y2, y4);
//区域面积
int area = Math.max(0, (intI_ - intI)* (intJ_ - intJ));
//总面积
int total_area = S1 + S2 - area;
System.out.println(total_area);
}
}
球球大家帮我看看┭┮﹏┭┮ 这错在哪了??
附正确代码如下