CodeSprout程式萌芽
困難第 45 題 · 雙燈檢查台
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Python

官方解答|雙燈檢查台

官方解答

Python #45:雙燈檢查台

解題規則

訊號檢查台同時檢查兩項條件,請記錄兩盞檢查燈所對應的分類與讀值。

第一條件是「a 大於 b」,第二條件是「a 小於 b」。兩項都成立時回傳 [「兩項符合」,a+b+c];僅第一項成立回傳 [「僅第一項」,a+b-c];僅第二項成立回傳 [「僅第二項」,a-b+c];都不成立回傳 [「皆不符合」,a-b-c]。請完整處理四種分支。

處理步驟

先各自算出 first、second。依兩者的四種組合選取分類文字與 a±b±c,第一條件控制 b 的正負,第二條件控制 c 的正負。

為何正確

條件只讀取原始輸入,成立與不成立的分支涵蓋所有可能。多條件情況分別記住兩個布林值,因此四種組合不會混淆。

邊界與注意事項

本題輸入範圍:a、b、c 均為 -100~100 的整數。

範例追蹤

依參數順序 a, b, c 傳入 [-4,-4,2]。關鍵中間資料為 first = False;second = False。最後回傳 ['皆不符合', -2]。結果由 return 回傳,不使用 print。

複雜度

依本題有界的數字、日期範圍,執行固定次數運算,時間與額外空間為 O(1)。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

def solve(a, b, c):
    first = a > b
    second = a < b
    if first and second:
        return ['兩項符合', a + b + c]
    if first:
        return ['僅第一項', a + b - c]
    if second:
        return ['僅第二項', a - b + c]
    return ['皆不符合', a - b - c]

留言討論 0