1. 程式人生 > 其它 >Java 題目 計算面積

Java 題目 計算面積

[計算面積]

繪圖機器的繪圖筆初始位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); } }