a009: 解碼器
題目:輸入一個string,輸出ASCII值-7之string
思路:分別輸出每個字母-7後的值
答案:
str1=input() for i in range(len(str1)): print(chr((ord(str1[i]))-7),end="")
a010: 因數分解
題目:輸入數字k,輸出指定型態之因數分解,例如20 -> 2^2 * 5
思路:因為二次方以上要輸出次方,一次方則否,故建立memo={}來記憶資料。 以for迴圈從2開始找因數,又因數成雙成對,故範圍只需找到根號k為止。 (若以2為底,再以奇數找會更快,但這題不需要所以沒用。) 若k整除,則i加入memo。若i以在memo以,則memo的計數+1。 最後輸出memo裡面的資料,若某因數計數只有1,則不輸出次方。 若計數>1,則輸出次方。(輸出方式可以寫得更簡潔)
a013: 羅馬字母轉換
題目:輸入n個兩項羅馬字母,分別輸出差額絕對值之羅馬字母
思路:先將羅馬數字轉換成數字進行計算。羅馬數字轉成字母的方式是先建立翻譯字典。 再個別轉換成1,5,10等等數字,再從減法的規則下手計算。將數字轉換為羅馬字母以暴力破解。 希望能有比較優雅的方式從數字轉為羅馬字母。(暴力方式太長就不貼上來了)