矩形总面积(第十四届蓝桥杯JavaB组省赛真题)

测试用例范围比较大,所以全部用long类型,如果用int类型只能通过60%,建议在内存和运行时间允许的情况下,比赛题都用long。

重点在于计算相交的面积,这里找的两个相交点是左上角(m1,n1)和右下角(m2,n2)

java 复制代码
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        long x1 = scan.nextInt();
        long y1 = scan.nextInt();
        long x2 = scan.nextInt();
        long y2 = scan.nextInt();
        long x3 = scan.nextInt();
        long y3 = scan.nextInt();
        long x4 = scan.nextInt();
        long y4 = scan.nextInt();

        long m1 = Math.max(Math.min(x1, x2), Math.min(x3, x4));
        long n1 = Math.min(Math.max(y1, y2), Math.max(y3, y4));
        long m2 = Math.min(Math.max(x1, x2), Math.max(x3, x4));
        long n2 = Math.max(Math.min(y1, y2), Math.min(y3, y4));

        long sum = 0;
        if (m1 < m2 && n1 > n2)
            sum = (m1 - m2) * (n1 - n2);
        long res = Math.abs((y2 - y1) * (x2 - x1)) + Math.abs((y3 - y4) * (x3 - x4)) + sum;
        System.out.println(res);
    }
}
相关推荐
唐叔在学习2 分钟前
详解Log4j组件:工业级Java日志框架
java·后端
代码哲学系3 分钟前
Maven 全网最细学习手册(下篇)
java·maven
秋难降27 分钟前
老板让我一天加 3 种支付方式,我用工厂模式躺赢了
java·设计模式
MacroZheng28 分钟前
斩获 7.8K star!一款堪称开源监控新标杆的项目,牛皮!
java·linux·后端
用户14818190184937 分钟前
Android Device Blacklist Synchronization Issue
java
Emrys_1 小时前
Java 动态代理详解:从原理到实战
java·后端
YC运维1 小时前
Ansible模块
java·服务器·前端
新停浊酒杯1 小时前
简单介绍——Java注解的本质
java·开发语言
3分云计算1 小时前
流水线用到的Dockerfile和构建脚本build.sh
java·开发语言
灵魂猎手1 小时前
12. 告别 MyBatis IN 语句的 foreach 模板:自定义扩展 让 SQL 编写效率翻倍
java·后端·源码