a244: 新手訓練 ~ for + if
題目:詳見此總之蠻簡單
思路:順順的寫,蠻簡單。
a248: 新手訓練 ~ 陣列應用
題目:輸入a,b,c;輸出a/b取到小數點後c位(四捨五入)
思路:我知道先把a/b各乘以10的c次方再相除換成陣列輸出蠻簡單,但想挑戰一下自我(?,所以用了比較純數學的寫法: decimal可以使用精確的小數(從原本float的二進位轉成10進位儲存),localcontext可以決定位數以及無條件捨去。用stack來處理位數問題(原本的位數判斷會含有小數點前的數)。 中間處理一下提早除淨的小數以規定格式輸出。(真的蠻麻煩,而且效能應該不彰,還是用字串處理簡單方便。)
a263: 日期差幾天
題目:輸入兩個日期,要求輸出兩日期差的天數。
思路:可以用dates秒解(X作弊(O,不過因為是練習所以...總之年月日分開計算,分別將兩個日期換成相對西元0.0.0的絕對天數相減後輸出。 年先-1,再*365後處理閏年;月也-1,以字典方式換算;天就直接加。最後處理當年是閏年且月份為3月以上,則天數再加一。(其實能import適合的函式就import最好QQ)