Java 題目 計算面積
阿新 • • 發佈:2022-04-04
[計算面積]
繪圖機器的繪圖筆初始位i在原點(0.0)。 機器啟動後其繪圖筆按下面規則繪製直線:
1 )嘗試沿著橫向座標軸正向繪製直線,直到給定的終點值E,
2 )期間可通過指令在縱座標軸方向進行偏移。井同時恰制直線,偏移後按規則1繪製直線;指令的格式為X offsetY。表示在橫座標X沿縱座標方向偏移, offsetY為正數表示正向偏移,為負數表示負向偏移。
給定了橫座標格點值E.以及若干條檢制指令。請計算給制的直線和橫座標軸。以及X-E的直線組成圖形的面積。
輸入模述:
首行為兩個整數NE。表示有N條指令。機器執行的橫座標終點值E.
接下來N行。每行兩個整數表示-條給制指令x osorr。用例保證橫座標X以遞增排序方式出現。且不會出現相同橫座標義。取值範圍:0<N<= 10000, 0<X<= E<=20000, -10000<=offsetY<=10000.
輸出描述:
一個整數,表示計算得到的面積。用例保證.結果範圍在0-4294967295內
示例1:
輸入
4 10
1 1
2 1
3 1
4 -2
輸出
12
這個題主要理解題意,
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] a1 = sc.nextLine().split(" "); int count = Integer.parseInt(a1[0]);int total = Integer.parseInt(a1[1]); long result = 0; int last_x = 0, last_y = 0; for(int i = 0; i < count; i++) { String[] a2 = sc.nextLine().split(" "); int x = Integer.parseInt(a2[0]); int y = Integer.parseInt(a2[1]); result = result + (x- last_x) * Math.abs(last_y); last_x= x; last_y = y; } result = result + (total - last_x) * Math.abs(last_y); System.out.println(result); } }