轉進製的問題

2021-10-03 18:18:10 字數 1212 閱讀 5117

進製轉換我們都知道方法,這裡就用**來實現一下,x進製轉換到y進製(其範圍為2到62進製之間轉換,『a』到『z』表示10–35,『a』到『z』表示36到62

這裡實際上是用到了大數相乘的思想,就是高精度乘低精度的基礎演算法,具體以**顯示**

*簡單說明兩個函式

inio()函式就是把各類進製轉為十進位制數,怎麼做呢?

就跟大數階乘做法一樣,陣列的q[0]存的是低位上的數字,因為最後你要進製,直接在陣列末尾加上就行,方便多了;每一位讀取的數字進行轉換後都放進q[0]的位置上,然後再for一遍,目的是為了使q陣列上的每乙個元素的值都不超過10(這裡也可以進行壓位操作,節省陣列空間),最後把q陣列反轉。

*func()函式就是把十進位制的數轉為目標進製的數,其做法就跟我們說的除基取餘操作一樣,**中的sum變數主要是記錄當前剩餘的值是多少,如果為0就代表這個大數已經操作完成

# include

# include

# include

using

namespace std;

int x,y;

string z;

int q[

10000];

//陣列大小看題意

char ans[

10000];

//陣列大小看題意,這裡只是為了演示

intinio()

else

c =0;

}while

(c)}

for(

int i=

0,j=k-

1;i++i,

--j)

q[i]

^=q[j]

^=q[i]

^=q[j]

;return k;

}void

func

(int k)

else

q[i]

= d;}}

for(

int i=right-

1;i>=0;

--i) cout<

intmain

(void

)

十六進製制轉fb為二進位制結果圖

1161 轉進製

時間限制 1000 ms 記憶體限制 65536 kb 提交數 6197 通過數 4467 題目描述 用遞迴演算法將乙個十進位制數x轉換成任意進製數m m 16 輸入 一行兩個數,第乙個十進位制數x,第二個為進製m。輸出 輸出結果。輸入樣例 31 16 將十進位制31轉化為十六進製制數 輸出樣例 1...

1161轉進製

早上來刷道,順利ac,附加關鍵題解,瞬間感覺神清氣爽。1 include2 using namespace std 3int m,x 確定全域性變數m很重要,這樣就不用傳引數了 4 f 函式功能 1.輸出餘數2.遞迴進入引數為商3.注意兩個先後順序,顛倒後為正序輸出 5void f intn 6 2...

轉 進 定 我的2014

看著很多朋友,都紛紛在總結回顧自己的2014,我也試著總結一下吧,原本想按照往年的傳統,選乙個年度漢字的,結果思前想後,發現至少需要三個字,才能表達這一年的林林總總。一 這一年我有三大轉變 二 進 這是我進步非常大的一年,因為在華為的工作與開源有關 與研發有關,我思考了很多 很多,也有了很多的收穫。...