基础练习 矩形面积交 (分类讨论)
基础 分类 练习 讨论 矩形 面积
2023-09-11 14:17:18 时间
基础练习 矩形面积交
时间限制:1.0s 内存限制:512.0MB
问题描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
输入格式
输入仅包含两行,每行描述一个矩形。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出格式
输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
1 1 3 3
2 2 4 4
2 2 4 4
样例输出
1.00
析:很简单的一个题,只要分类讨论即可,一种就是面积为 0,只要判断是不是没有交点就好,这就只要判断某一个的最小的 x 是不是大于另一个的最大的 x,同理 y 也是,剩下就情况就是相交的,求相交的面积,这个更容易,只要求出每个两个矩形最小的里面最大的值与最大里面的最小值差的绝对值就是长度和宽。但是尤其要注意的是 System.out.println(0.00),输出的答案是 0.0 而不是 0.00 ,所以这是一个我不知道的,第一次只得了 57。我又检查了一下代码,没有发现错误,又看了数据才知道,原来是这个问题,对 Java 真是不了解。。。
代码如下:
import java.util.*; class Point{ public double x, y; Point(double x, double y){ this.x = x; this.y = y; } }; public class Main{ public static void main(String []args){ Scanner cin = new Scanner(System.in); Point []a = new Point[4]; for(int i = 0; i < 4; ++i) a[i] = new Point(cin.nextDouble(), cin.nextDouble()); for(int i = 0; i < 4; i += 2){ if(a[i].x > a[i+1].x){ double t = a[i].x; a[i].x = a[i+1].x; a[i+1].x = t; } if(a[i].y > a[i+1].y){ double t = a[i].y; a[i].y = a[i+1].y; a[i+1].y = t; } } if(a[0].x >= a[3].x || a[0].y >= a[3].y || a[1].x <= a[2].x || a[1].y <= a[2].y){ System.out.println("0.00"); return ; } double x = Math.max(a[0].x, a[2].x) - Math.min(a[1].x, a[3].x); double y = Math.max(a[0].y, a[2].y) - Math.min(a[1].y, a[3].y); System.out.printf("%.2f\n", Math.abs(x * y)); } }
相关文章
- Android开发之视图动画基础
- hive 用户订单行为 基础操作
- kotlin之基础02
- 【Linux基础】查看十六进制hexdump
- 多线程同步基础
- Go基础-2
- 微搭低代码零基础入门课(第二课)
- AI:大力出奇迹?Bigger is better?AI下一代浪潮?预训练大语言模型的简介(起源/目的/概述/技术基础/核心/影响/优缺点/未来趋势)、发展史、模型分类及其对比、案例应用之详细攻略
- 一个有意思还有用的Python包-汉字转换拼音(附零基础学习教程)
- 〖Python零基础入门篇⑧〗 - Python 中的变量与关键字
- 数学建模学习(65):零基础学会使用SVM支持向量机分类
- 野生前端的数据结构基础练习(5)——散列
- 华为0基础——(练习用)挑7
- Linux基础命令-chattr更改文件隐藏属性
- 上海数据分析师培训告诉你:零基础如何转行软件测试
- Selenium基础 — 键盘操作
- Appium自动化测试基础 — 移动端测试环境搭建(一)
- Thinking in java基础之集合框架(转载)
- 10. Android加固原理(基础篇)
- python基础===flask使用整理(转)
- 【JS高级】正则入门基础—关于你想知道的正则表达式_01
- 人工智能的预训练基础模型的分类
- 一天学完spark的Scala基础语法教程十三、文件IO操作(idea版本)
- Shell基础— Shell的作用与分类