官方解答 · 置頂Java
官方解答|運算錯誤回報
官方解答|運算錯誤回報
解題思路
先檢查 a>0;不符就 throw CheckException。接著計算 Java 整數餘數 a%b,成功時回傳計算出的 int;失敗時所有指定例外使用 fallback。
正確性與邊界
檢查、操作與捕捉的先後順序不變;除零、錯誤索引、數字格式與自訂檢查各自進入題目指定的復原分支,沒有提前將失敗誤判成成功。
複雜度
數字解析 O(L),L 為 a 的文字長度;其他操作時間與空間 O(1)。
公開範例
輸入 {"a": 0, "b": 0, "fallback": 7},依上述步驟得到 7。
下方程式可直接取代起始碼;使用 Java 11,入口為 Solution.solve。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
import java.util.*;
public class Solution {
private static class CheckException extends RuntimeException {}
public static int solve(int a, int b, int fallback) {
int answer = fallback;
try {
if (!(a>0)) throw new CheckException();
int value = a%b;
answer = value;
} catch (ArithmeticException | ArrayIndexOutOfBoundsException | NumberFormatException | CheckException error) {
answer = fallback;
}
return answer;
}
}
留言討論 0
登入 後就能留言,一起討論不同的寫法。