問 題 描述: |
問題描述 在一個定義了直角座標系的紙上,畫一個(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);
}
}