Number Classifier
題目說明
請完成一個程式,該程式允許使用者輸入一個整數 n,接著輸入 n 個整數。程式需要將每個整數歸類至以下四種類型之一:
- "PosEven":正偶數(大於 0 且為偶數)
- "PosOdd":正奇數(大於 0 且為奇數)
- "NegEven":負偶數(小於 0 且為偶數)
- "NegOdd":負奇數(小於 0 且為奇數)
- "Zero":零
- 在提供的程式碼中,main 方法已經完成,但 classifyNumbers 方法尚未實作。請完成 classifyNumbers 方法,使其能夠將整數陣列轉換成對應的字串陣列。
程式模板
import java.util.Scanner;
public class NumberClassifier {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 由使用者輸入一個整數 n,代表接下來有 n 個整數
int n = scanner.nextInt();
// 創建一個整數陣列,大小為 n
int[] numbers = new int[n];
// 接著讀取 n 個整數,並將它們存儲在 numbers 陣列中
for (int i = 0; i < n; i++) {
numbers[i] = scanner.nextInt();
}
// 將整數陣列轉換為字串陣列,依照數字的特性將其分類
// 例如,如果 numbers = [-2, -1, 0, 1, 2],則返回值是 ["NegEven", "NegOdd", "Zero", "PosOdd", "PosEven"]
String[] result = classifyNumbers(numbers);
// 輸出字串陣列
for (int i = 0; i < result.length; i++) {
System.out.print(result[i] + " ");
}
scanner.close();
}
// 這個函數將整數陣列轉換為字串陣列,根據每個整數的特性進行分類
// 參數是一個整數陣列,返回值是一個字串陣列
// 分類規則:
// "PosEven":正偶數(大於 0 且為偶數)
// "PosOdd":正奇數(大於 0 且為奇數)
// "NegEven":負偶數(小於 0 且為偶數)
// "NegOdd":負奇數(小於 0 且為奇數)
// "Zero":零
public static ... classifyNumbers(...) {
// 請在此處完成函數實作
}
}
輸入值的格式
- 第一個數字為一個整數 n(1 ≤ n ≤ 100),表示接下來有 n 個整數
- 後面接著 n 個以空格分隔的整數,每個整數的範圍為 -1000 ≤ 整數 ≤ 1000
輸出值的格式
- 輸出 n 個以空格分隔的字串,每個字串代表對應整數的分類
邊界條件提示
- 輸入可能包含零
- 輸入的整數數量 n 可能非常小(如 1)或相對較大(如 100)
- 所有輸入可能都屬於同一類型
範例輸入 #1
5 -2 -1 0 1 2
範例輸出 #1
NegEven NegOdd Zero PosOdd PosEven
說明:-2 是負偶數,-1 是負奇數,0 是零,1 是正奇數,2 是正偶數
Comments