问 题 描述: | 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 输入格式 输入的第一行包含一个整数n,表示要画的矩形的个数。 输出格式 输出一个整数,表示有多少个单位的面积被涂上颜色。 样例输入 2 样例输出 15 评测用例规模与约定 1<=n<=100,0<=横坐标、纵坐标<=100。 思想:通过横纵坐标来计算面积,将总面积简单相加后去除重复面积即为所求。 |
package drawing;
import java.util.Scanner;
public class Main {
@SuppressWarnings("resource")
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();// 矩形个数
int result = 0;// 结果数
int[][] paper = new int[101][101];// 画纸,初始值全为0
for (int i = 0; i < n; i++) {
int x1 = sc.nextInt();
int y1 = sc.nextInt();
int x2 = sc.nextInt();
int y2 = sc.nextInt();
result += (x2 - x1) * (y2 - y1);// 计算矩形面积即为该矩形所占有的方块数目
for (int y = y1; y < y2; y++)
// 绘画,将矩形方块用1表示画在画纸上
for (int x = x1; x < x2; x++) {
if (paper[y][x] == 1)// 如果此处已为1则出现重复
result--;
paper[y][x] = 1;
}
}
System.out.println(result);
}
}