給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數
主要考慮負數情況和10進製以上怎麼轉換,進製轉換我們知道就是將m對n進行取餘,得到的結果就是低位的值,之後m=m/n;2進製用0,1表示;8進製由0-7表示;10進製是0-9表示,十六進製制由「0123456789abcdef」表示,題目的備註是n大於等於2小於等於16,因此可以使用乙個輔助陣列來對映m對n取餘後得到的結果,如果m是負數,先將m轉成正數,最後計算出的結果前面加上負號。
public string solve (
int m,
int n)
//m是負數,對m取反,標識改為false
if(m<0)
//用來訪問輔助陣列中的字元,最終的結果需要翻轉成字串
stringbuilder sb =
newstringbuilder()
; string dict =
"0123456789abcdef"
;//m對n取餘,m=m/n
while
(m!=0)
//如果是負數前面加上負號
return flag?sb.
reverse()
.tostring()
:"-"
+sb.
reverse()
.tostring()
;}
牛客題霸 進製轉換
進製轉換的方法較為經典。對於乙個十進位制的是數,每次對m取模,然後除以m m為轉換後的進製 即可得到m進製數。因為m進製的數第一位時m 0m 0 m0,第二位時m 1m 1 m1,第三位m2 m 2 cdots m2 所以如果10進製的數n大於m km k mk k是最大的,即n 1 nn 1 則說...
牛客題霸 進製轉換
題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 示例1輸入 7,2返回值 111 備註 m是32位整數,2 n 16.解題思路 考慮負數和大於10位的進製。python 進製轉換 param m int整型 給定整數 param n int整型 轉換到的進製 r...
牛客刷題 進製轉換
題目 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 題目其實還算簡單,但是自己還是陷入了思維誤區。本來想休息一段時間再做,但還是感覺得堅持著做,做不出來的就看別人的解法整理一下思路,畢竟題目時間少。進製轉換,乍一看還是比較簡單的,做的時候出現了兩個問題 1.沒有考慮符號...