Python編程算法【八】 數(shù)制轉(zhuǎn)換
【案例內(nèi)容】
給定一個十進(jìn)制的數(shù)x,實(shí)現(xiàn)對x向任意一個非十進(jìn)制的數(shù)的轉(zhuǎn)換
【解題思路】
所謂十進(jìn)制數(shù),簡單來講,就是我們平時在電腦里輸入的正整數(shù),都是十進(jìn)制數(shù),比如1,28,197,2018,63974209......都是十進(jìn)制數(shù)。本題的意思是,假設(shè)有一個十進(jìn)制數(shù),比如189,要把它轉(zhuǎn)換成非十進(jìn)制數(shù),可以是二進(jìn)制、三進(jìn)制或七進(jìn)制、九進(jìn)制等。針對此題,最常見的算法,就是用短除法——將十進(jìn)制數(shù),比如189,不斷去除以進(jìn)制,比如我要轉(zhuǎn)成二進(jìn)制,就不斷除以2,直到商小于2,再把最后的商和之前除得的余數(shù)倒敘輸出即可。
我們可以先設(shè)置一個列表,把每次除得的余數(shù)和最后的一個商存儲下來,最后逆序輸出。
本題適合用遞歸函數(shù)來解答。
【Python代碼】

截圖中函數(shù)radix,也可以用來求解其他進(jìn)制,比如189的五進(jìn)制是1224,七進(jìn)制是360等,讀者朋友們可自行嘗試,或者是再轉(zhuǎn)成十進(jìn)制也是可以的,就是它本身189.
標(biāo)簽: