8/24練習

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等等數字,再從減法的規則下手計算。將數字轉換為羅馬字母以暴力破解。
     希望能有比較優雅的方式從數字轉為羅馬字母。(暴力方式太長就不貼上來了)
        

arrow_circle_left home arrow_circle_right