CCF201604 折點計算(JAVA)
阿新 • • 發佈:2018-11-15
問 題 描述: |
問題描述 給定n個整數表示一個商店連續n天的銷售量。如果某天之前銷售量在增長,而後一天銷售量減少,則稱這一天為折點,反過來如果之前銷售量減少而後一天銷售量增長,也稱這一天為折點。其他的天都不是折點。如下圖中,第3天和第6天是折點。 輸入格式 輸入的第一行包含一個整數n。 輸出格式 輸出一個整數,表示折點出現的數量。 樣例輸入 7 樣例輸出 2 評測用例規模與約定 所有評測用例滿足:1 ≤ n ≤ 1000,每天的銷售量是不超過10000的非負整數。 |
package pointCount; import java.util.Scanner; public class Main { @SuppressWarnings("resource") public static void main(String[] args) { // 思想:連續三點之間中的連續兩點之差的正負符號若相反則中點為折點 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int result = 0;// 輸出折點數目:初始值為0 if (n >= 3)// 當n<3時不存在折點 { int x1 = sc.nextInt();// 記錄連續三點中第一個點 int x2 = sc.nextInt();// 記錄連續三點中的中間點 int x3;// 記錄連續三點中的最後一個點 for (int i = 2; i < n; i++) { x3 = sc.nextInt(); if ((x2 - x1) * (x3 - x2) < 0)// 連續點的差值正負號相反 result++; x1 = x2; x2 = x3; } } System.out.println(result); } }