任意進製轉換(高精度)

2021-10-03 10:22:29 字數 1914 閱讀 3636

2019銀川現場:

62進製以內的任意進製轉換

板子:

#includeusing namespace std;

const int n=1000;

char s1[n],s2[n];

int a[n],t[n],n,m;//n進製轉m

void solve()

a[k++]=t[0]%m;

t[0]/=m; //單獨處理最後一位

while(len&&!t[len-1]) --len;//第len位一定是處理完的了(第一次白做),找第len位後不為0的位

}s2[k]=0;

for(i=0;ipoj1220:

板子(注釋是我曾經默寫錯的一些地方)

#include#include#includeusing namespace std;

const int n=1e5+5;

int n,m;

int a[n],t[n];

char s1[n],s2[n];

void solve()

a[k++]=t[0]%m;

t[0]/=m;

while(len&&!t[len-1]) --len;

}s2[k]=0;

for(int i=0;i藍橋杯:

16轉8:(用上面的板子會t,複雜度是o(n^2),n是十六進製制數的位數,是1e5,所以只能轉二進位制來做,複雜度是o(n))

但是用char寫會超時,好像是strcat函式特別慢。

#includeusing namespace std;

const int n=5e5+5;

char s1[n],s2[n],s[n],a[n];//s1十六進製制 s2二進位制 s補0後的二進位制 a八進位制

//strlen(s) 求字串s的長度

//strcat(s1,s2) 拼接 s1=s1+s2

//strcpy(s,str) 賦值(拷貝)

//strcmp(s1,s2) 比較(相等為0)

//strncpy(dest,src,n) 從src開始 取n個字元 賦給dest

//substr(s,n) string的函式 擷取(從s開始取n個字元)

void solve()

}int l2=s2.size();

if(l2%3==1) s2="00"+s2; else if(l2%3==2) s2="0"+s2;

bool flag=false;

for(int i=0;s2[i];i+=3)

a[k++]=t[0]%m;

t[0]/=m;

while(len&&!t[len-1]) --len;

}s2[k]=0;

for(int i=0;i10轉16(套板子):

#includeusing namespace std;

const int n=10;

int n=10,m=16;

int a[n],t[n];

char s1[n],s2[n];

void solve()

a[k++]=t[0]%m;

t[0]/=m;

while(len&&!t[len-1]) --len;

}s2[k]=0;

for(int i=0;i10轉8(8進製數前加0(除了0以外)):

#includeusing namespace std;

int main()

ps:我不知道有沒有%llo這種寫法啊,但是能過編譯反正hh......

參考:c語言實現進製轉換 

c語言進製之間轉換 

10轉2(輸出8位二進位制數) :

#includeusing namespace std;

int main()

poj1220 高精度任意進製轉換

高精度任意進製轉換 是從discuss裡找到的,據說是maigo神牛寫的。超精簡!我自己第一寫的時候,還把n進製先轉成10進製,然後再從10進製轉為m進製。悲催的是寫了好長滴,還沒調對啊!code include include const int maxn 1000 int t maxn a ma...

進製轉換 高精度除法 進製轉換

高精度除法運算 include include include using namespace std struct bign bign change char str return a bign divide bign a,int b,int r 去除前導0 while c.len 1 1 c.d...

高精度進製轉換模板

高精度進製轉換模板 高精度進製轉換 把oldbase 進製的數轉化為newbase 進製的數輸出。呼叫方法,輸入str,oldbase newbase.change solve output 也可以修改output 使符合要求,或者存入另外乙個字元陣列,備用 include include defi...