矩形面积交
题目描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
输入
输入仅包含两行,每行描述一个矩形。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出
输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
1 1 3 3 2 2 4 4
样例输出
1.00
思路:
先用二维数组 标记 第一个矩形的区域,然后 在第二个矩形的区域内 寻找 刚才第一个矩形标记的。。
自己写的代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] a = new int[10000][10000];
int x1 = scanner.nextInt();
int y1 = scanner.nextInt();
int x2 = scanner.nextInt();
int y2 = scanner.nextInt();
int x3 = scanner.nextInt();
int y3 = scanner.nextInt();
int x4 = scanner.nextInt();
int y4 = scanner.nextInt();
for(int i=x1;i<x2;i++){ //先标记第一个矩形
for(int j=y1;j<y2;j++){
a[i][j]=1;
}
}
int cnt = 0;
for(int i=x3;i<x4;i++){ //在第二个矩形的区域内找刚标记的
for(int j=y3;j<y4;j++){
if(a[i][j]==1)
cnt++;
}
}
System.out.println(cnt);
}
}