矩形总面积(第十四届蓝桥杯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);
    }
}
相关推荐
Filotimo_10 分钟前
Tomcat的概念
java·tomcat
索荣荣42 分钟前
Java Session 全面指南:原理、应用与实践(含 Spring Boot 实战)
java·spring boot·后端
Amumu121381 小时前
Vue Router(二)
java·前端
念越1 小时前
数据结构:栈堆
java·开发语言·数据结构
千寻技术帮2 小时前
10333_基于SpringBoot的家电进存销系统
java·spring boot·后端·源码·项目·家电进存销
dear_bi_MyOnly2 小时前
【多线程——线程状态与安全】
java·开发语言·数据结构·后端·中间件·java-ee·intellij-idea
jiaguangqingpanda2 小时前
Day36-20260204
java·开发语言
tb_first2 小时前
万字超详细苍穹外卖学习笔记4
java·spring boot·笔记·学习·spring·mybatis
努力写代码的熊大2 小时前
c++异常和智能指针
java·开发语言·c++