POJ 2330 進製轉換

2021-07-15 18:03:25 字數 998 閱讀 9581

乙個沒用到大數的進製轉換的思想:

二、八、十、十六進製制轉換(**篇):

題目連線:

#include#include#include#includeusing namespace std;

char str[1000];//輸入字串

int beichushu[1000],shang[1000],yushu[10000]; //被除數,商,餘數

int oldbase,newbase;

void change()

else if (str[i-1]>='a'&&str[i-1]<='z')

beichushu[i]=str[i-1]-'a'+36;

else

beichushu[i]=str[i-1]-'a'+10;

}}void solve()

yushu[++yushu[0]]/*餘數的長度同時標記*/ = y;//這一輪運算得到的餘數

i = 1;

//找到下一輪商的起始處

while((i<=shang[0]) && (shang[i]==0)) i++;//當最後乙個商為0時,i為2,賦值給j,肯定大於開始被除數的長度,新的被除數長度在57行就為0了

//清除這一輪使用的被除數

memset(beichushu,0,sizeof(beichushu));

//本輪得到的商變為下一輪的被除數

for(j = i;j <= shang/*(beichushu)*/[0];j++)

beichushu[++beichushu[0]]/*重新標記被除數的長度*/ = shang[j];

memset(shang,0,sizeof(shang)); //清除這一輪的商,為下一輪運算做準備

}}void output()

printf("\n\n");

}int main()

return 0;

}

**很好,有幾處控制很微妙的恰當

POJ 2330 進製轉換

乙個沒用到大數的進製轉換的思想 二 八 十 十六進製制轉換 篇 題目連線 include include include includeusing namespace std char str 1000 輸入字串 int beichushu 1000 shang 1000 yushu 10000 被...

POJ 2196進製轉換

題意 求出這樣的四位數的個數,滿足分別以十進位制 十二進位制 十六進製制表示時,數字相加之和相等。思路 剛開始我想到的是用itoa函式,後面寫出來了,但是沒通過,編譯錯誤,才知道itoa在poj中是非標準的函式,不能使用,所以重新寫了這個 還有乙個最快的程式就是雖然itoa非標準的函式,但是我可以算...

poj 1546 進製轉換

題意 輸入每組3個數a,b,c。其中a為b進製數,輸出將其轉化為c進製後的數。若轉化結果大於7位則輸出 error 2 b,c 16.思路 最笨的方法,先從b進製轉化為10進製,再轉化為c進製。include include char num 10 int a,b,s 10 int num2deci...