iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 12
0
自我挑戰組

程式設計師大冒險系列 第 12

12/150_12019 - Doom's Day Algorithm+全域變數解說

數學題型計算,需要思考地方變多了,有些地方硬算測資會過,但是會超時計算。所以這地方要加強演算法知識,並複習高中數學知識。


12019 - Doom's Day Algorithm

每週一是末日來臨,畢竟是憂鬱星期一,給你日期問你週別。

#print("date","doom","sub")#測資日期,測資月份的週一日,相減
像這種在print前面有加#,是方便參考程式運作過程

import sys
def inp():
    #print("date","doom","sub")#測資日期,測資月份的週一日,相減
    count=int(sys.stdin.readline())#第一列告訴你有幾筆測資
    for i in range(count):#迴圈(第一列測資)
        sinp=sys.stdin.readline()
        sinp1,sinp2=map(int,sinp.replace("\n","").split())#月份,日期
        #print(sinp1,sinp2,end=" ")#測資日期,
        doom(sinp1,sinp2)

def doom(o,t):
    do={1:10,2:21,3:28,4:4,5:9,6:6,7:11,8:8,9:5,10:10,11:7,12:12}#這邊是題目告訴你當天是星期一的日子,只有三月份要自己去推算
    st=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
    #print(do.get(o),(t-do.get(o)))測資月份的週一日,相減
    print(st[(t-do.get(o))%7])#取餘數得知星期別
    
inp()

解題心得

不難,但是要統整每月份星期一的日子一天,三月月要自己算。
不需要額外背語法


更正啟事

前面的文章有筆誤,全域變數打成全域函數,很抱歉傳遞錯誤知識。
https://ithelp.ithome.com.tw/upload/images/20181012/20091910DKCci9nSV5.jpg


總結

感謝撥冗閱讀,歡迎批評與指教


上一篇
11/150_面試前夕
下一篇
13/150_數字基本題型(Python)+10038 - Jolly Jumpers
系列文
程式設計師大冒險115

尚未有邦友留言

立即登入留言