# a003 - 兩光法師占卜術 ### 題目連結: [a003](https://zerojudge.tw/ShowProblem?problemid=a003) ### 題目解析 * 題目的占卜術能夠輸入一個日期並依照公式後換算得到三種結果 ==(普通、吉、大吉)== * 換算的公式如下: * M=月 * D=日 * S=(M*2+D)%3 ### 範例測資解讀 * 輸入 * 每組測資為一筆單行資料,並且由兩個數字組成 * 輸出 * 輸出運勢為中文字,分別是普通、吉、大吉 ### 其他注意事項 * 此題是少數練習題中輸出入資料含有中文的內容,但在 python 中處理則不會受到影響 * 題目未詳細說明月份日期的範圍,因為此題為基本輸出入操作,因此不需考慮太過於刁鑽的測資,例如 <font color="#f00">**2 31**</font> 這種不合理的狀況 ### 程式解析 ``` python=01 import sys for s in sys.stdin: nums = [ int(i) for i in s.split() ] M = nums[0] D = nums[1] S = (M*2+D)%3 if S==0: print("普通") elif S==1: print("吉") else: print("大吉") ``` * 此題開始較為接近一般題型的形式.首先需要處理連續的輸入資料,以此題的情況單行輸入,仍然可以使用 sys.stdin 的方式擷取單行字串 ``` python nums = [ int(i) for i in s.split() ] M = nums[0] D = nums[1] ``` 使用 [] 的方式,將切割完的資料先強制轉換型態,接著轉存成 list,寫法與以下相同 ``` python nums = list(map(int, s.split())) ``` * 取出 M, D 兩個變數後,就可以透過公式求得 S,由於是取餘數,因此 S 的值必為整數 * 最後加上三個條件判斷輸出結果即可 ###### tags: `基礎15題解` `APCS` `ZeroJudge`