CodeSprout程式萌芽
簡單第 303 題 · 運算錯誤回報
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Java

官方解答|運算錯誤回報

官方解答|運算錯誤回報

解題思路

不先做額外驗證。接著計算整數商 a/b,成功時回傳計算出的 int;失敗時所有指定例外使用 fallback。

正確性與邊界

檢查、操作與捕捉的先後順序不變;除零、錯誤索引、數字格式與自訂檢查各自進入題目指定的復原分支,沒有提前將失敗誤判成成功。

複雜度

數字解析 O(L),L 為 a 的文字長度;其他操作時間與空間 O(1)。

公開範例

輸入 {"a": 1, "b": 1, "fallback": 7},依上述步驟得到 1。

下方程式可直接取代起始碼;使用 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 {
            
            int value = a/b;
            answer = value;
        } catch (ArithmeticException | ArrayIndexOutOfBoundsException | NumberFormatException | CheckException error) {
            answer = fallback;
        }
        return answer;
    }
}

留言討論 0