自学内容网 自学内容网

蓝桥杯:矩形总面积(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)!