Number Frequency Range Calculator
題目說明
請撰寫一個程式來分析數字在集合中的出現頻率特性。程式會讀取一個整數 n,接著讀取 n 個整數組成一個數列。 程式需要計算出數列中各數字出現的次數,並找出出現次數的最大值和最小值之間的差距(即最高頻率與最低頻率的差)。
如果數列中所有數字出現次數都相同,則輸出 0。如果數列中只有一種數字(即使出現多次),仍應輸出 0,因為最高頻率與最低頻率相同。
請完成程式中的 calculateFrequencyRange
函數,該函數接收一個整數陣列作為參數,並返回數列中數字出現次數的最大值和最小值之間的差距。
除了實作 calculateFrequencyRange
函數外,請勿修改程式中其他已經寫好的部分,違反此規則者,無論自動評測結果為何,在考試中均不計分。但允許輕微的排版差異。
程式模板
import java.util.Scanner;
public class FrequencyRangeCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 讀取數字的數量
int n = scanner.nextInt();
int[] numbers = new int[n];
// 接著讀取 n 個數字,並將它們存儲在 numbers 陣列中
for (int i = 0; i < n; i++) {
numbers[i] = scanner.nextInt();
}
// 計算數列中數字出現次數的最大值和最小值之間的差距
int result = calculateFrequencyRange(numbers);
System.out.println(result);
scanner.close();
}
// 這個函數計算數列中數字出現次數的最大值和最小值之間的差距
// 參數是一個整數陣列,返回值是一個整數,表示出現次數的最大值和最小值之間的差距
public static ... calculateFrequencyRange(...) {
// 請在此處實作函數
}
}
輸入值的格式
- 第一個數字輸入一個正整數 n (1 ≤ n ≤ 100),表示接下來要輸入的整數數量。
- 後面接著輸入 n 個整數,以空格分隔,每個整數的範圍為 (-100 ≤ 整數 ≤ 100)
輸出值的格式
輸出一個整數,表示數列中數字出現次數的最大值和最小值之間的差距。
邊界條件提示
- n 可能為 1,表示數列中只有一個數字,此時應輸出 0。
- 數列中可能有重複的數字,也可能全部都是相同的數字。
- 數列中的數字可能是負數或是零。
- 如果數列中所有不同的數字出現次數都相同,則輸出 0。
範例輸入 #1
7 1 2 2 3 3 3 4
範例輸出 #1
2
說明:數字 1 出現 1 次,數字 2 出現 2 次,數字 3 出現 3 次,數字 4 出現 1 次。最高頻率是 3(數字 3),最低頻率是 1(數字 1 和 4),差距為 3-1=2。
範例輸入 #2
4 5 6 7 8
範例輸出 #2
0
說明:每個數字都只出現 1 次,最高頻率與最低頻率都是 1,差距為 1-1=0。
Comments