answer def calculate_score(N): if N <= 10: return N * 6 elif N <= 20: return 10 * 6 + (N - 10) * 2 elif N <= 40: return 10 * 6 + 10 * 2 + (N - 20) * 1 else: return 100 def main(): import sys input = sys.stdin.read().strip() N = int(input) print(calculate_score(N)) if __name__ == "__main__": main() |
為了解決這個問題,我們需要根據給定的規則來計算分數。根據題數 \( N \) 的範圍,分數的計算方式如下: 1. 如果 \( N \) 在 0 到 10 之間,每題給 6 分。 2. 如果 \( N \) 在 11 到 20 之間,前 10 題每題給 6 分,第 11 到 20 題每題給 2 分。 3. 如果 \( N \) 在 21 到 40 之間,前 10 題每題給 6 分,第 11 到 20 題每題給 2 分,第 21 到 40 題每題給 1 分。 4. 如果 \( N \) 超過 40 題,分數固定為 100 分。 我們可以根據這些規則寫一個簡單的條件判斷來計算分數。 以下是解決這個問題的 Python 程式碼: ```python def calculate_score(N): if N <= 10: return N * 6 elif N <= 20: return 10 * 6 + (N - 10) * 2 elif N <= 40: return 10 * 6 + 10 * 2 + (N - 20) * 1 else: return 100 def main(): import sys input = sys.stdin.read().strip() N = int(input) print(calculate_score(N)) if __name__ == "__main__": main() ``` ### 程式碼解釋 1. **`calculate_score` 函數**: 根據題數 \( N \) 計算對應的分數。 - 如果 \( N \) 小於等於 10,分數為 \( N \times 6 \)。 - 如果 \( N \) 在 11 到 20 之間,分數為前 10 題的分數加上後面的題數乘以 2。 - 如果 \( N \) 在 21 到 40 之間,分數為前 20 題的分數加上後面的題數乘以 1。 - 如果 \( N \) 超過 40 題,分數固定為 100 分。 2. **`main` 函數**: 讀取輸入的題數 \( N \),並調用 `calculate_score` 函數計算得分,然後輸出結果。 - 使用 `sys.stdin.read` 讀取輸入,然後將其轉換為整數 \( N \)。 ### 測試 你可以將這段程式碼保存到一個 Python 檔案中,然後通過以下方式進行測試: ```bash echo -e "10\n40" | python script.py ``` 這樣可以確保程式能正確處理並輸出結果。如果還有其他問題或需要進一步的幫助,請告訴我! |