進製轉換我們都知道方法,這裡就用**來實現一下,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,我也試著總結一下吧,原本想按照往年的傳統,選乙個年度漢字的,結果思前想後,發現至少需要三個字,才能表達這一年的林林總總。一 這一年我有三大轉變 二 進 這是我進步非常大的一年,因為在華為的工作與開源有關 與研發有關,我思考了很多 很多,也有了很多的收穫。...