CodeSprout程式萌芽
困難第 25 題 · 訂單資料卡
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Python

官方解答|訂單資料卡

官方解答

Python #25:訂單資料卡

解題規則

資料匯入工具收到以文字表示的單價、數量與折抵欄位,請產生指定的核對結果。

三欄資料以文字傳入。先各自轉成整數 price、quantity、credit;price 為單價、quantity 為數量、credit 為折抵額,原始總額定義為 price * quantity。再回傳三項:單價乘數量的原始總額、credit 除以 (price + 1) 的整數商,即 credit // (price + 1)、轉換後的三個整數清單。所有計算使用整數,不加入貨幣符號。

處理步驟

先保留三個原始字串供原長度規則使用,再用 int 轉成 price、quantity、credit。依序計算兩個指定欄位,最後附上三個整數。

為何正確

所有運算直接依題目定義,數值運算保留數值型態,文字運算明確轉成文字,最後依指定順序回傳結果。

邊界與注意事項

本題輸入範圍:三個字串均可用 int() 轉換;轉換後數值 0~100,不含小數點或前後空白。

範例追蹤

依參數順序 price_text, quantity_text, credit_text 傳入 ["0","0","7"]。關鍵中間資料為 raw = ['0', '0', '7'];price = 0;quantity = 0;credit = 7。最後回傳 [0, 7, [0, 0, 7]]。結果由 return 回傳,不使用 print。

複雜度

設輸入及必要輸出的總大小為 n;複製、轉換或掃描最壞時間 O(n),保存中間資料與回傳結果最壞需要 O(n) 空間。

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

def solve(price_text, quantity_text, credit_text):
    raw = [price_text, quantity_text, credit_text]
    price, quantity, credit = map(int, raw)
    return [price * quantity, credit // (price + 1), [price, quantity, credit]]

留言討論 0