蓝桥杯VIP试题 之 基础练习 矩形面积交 - JAVA

举报
陈言必行 发表于 2021/08/13 23:19:46 2021/08/13
【摘要】 蓝桥杯VIP试题 之 基础练习 矩形面积交 - JAVA 题目描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。 输入 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。 输出 输出仅包含一个实数...

蓝桥杯VIP试题 之 基础练习 矩形面积交 - JAVA

题目描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

输入
输入仅包含两行,每行描述一个矩形。

在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。

输出
输出仅包含一个实数,为交的面积,保留到小数后两位。

样例输入
1 1 3 3
2 2 4 4

样例输出
1.00

PS:由给出的样例画个样图,可以看出相交的矩形长和宽都可以通过做差的方式来求得;那么,我们就去思考是谁和谁的差去组成长和宽就可以了;最后的结果要的是面积,所以不用考虑长>宽这种类似的问题.长的求解公式如下:
长:X = min_x - max_x;
min_x = 矩形1的较大的x坐标和矩形2中较大的坐标中的小的那个;
max_x = 矩形1的较小的x坐标和矩形2中较小的坐标中的大的那个;
同理求Y的值也就是所求的相交矩形的宽了,若所求的X,Y均大于0则说明有相交矩形,那么此时X*Y求出面积即可,注意要题目要求的格式保留两位小数;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) { Scanner sc = new Scanner(System.in); //接收输入,分别存到两个数组中 double[] rectangle_1 = new double[4]; double[] rectangle_2 = new double[4]; for(int i = 0; i < rectangle_1.length; i++) { rectangle_1[i] = sc.nextDouble(); } for(int j = 0; j < rectangle_2.length; j++) { rectangle_2[j] = sc.nextDouble(); } double X,Y; //求相交矩形的长:X double min_X = Math.min(Math.max(rectangle_1[0], rectangle_1[2]), Math.max(rectangle_2[0], rectangle_2[2])); double max_X = Math.max(Math.min(rectangle_1[0], rectangle_1[2]), Math.min(rectangle_2[0], rectangle_2[2])); X = min_X - max_X; //求相交矩形的宽:Y double min_Y = Math.min(Math.max(rectangle_1[1], rectangle_1[3]), Math.max(rectangle_2[1], rectangle_2[3])); double max_Y = Math.max(Math.min(rectangle_1[1], rectangle_1[3]), Math.min(rectangle_2[1], rectangle_2[3])); Y = min_Y - max_Y; //若有一个是非正数,则两矩形是不想交的 if(X > 0 && Y > 0) { double S = X * Y; //保留两位小数并输出 System.out.println(String.format("%.2f", S)); }else { System.out.println("0.00"); }
	}

}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/104646643

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。