藍橋杯 進製轉換

2021-07-27 10:19:33 字數 2654 閱讀 2576

一、十六進製制轉八進位制

問題描述

給定n個十六進製制正整數,輸出它們對應的八進位制數。

輸入格式

輸入的第一行為乙個正整數n (1<=n<=10)。

接下來n行,每行乙個由0~9、大寫字母a~f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制

數長度不超過100000。

輸出格式

輸出n行,每行為輸入對應的八進位制正整數。

【注意】

輸入的十六進製制數不會有前導0,比如012a。

輸出的八進位制數也不能有前導0。

樣例輸入

2

39

123abc

樣例輸出

71

4435274

【提示】

先將十六進製制數轉換成某進製數,再由某進製數轉換成八進位制。

**:

#include #include int b[1000005];

char s[1000005];

int main()

else

j = 3;

k = 4 * i;

while(j > -1)

}len = len * 4 -1;

j = 0;

while(len >= 2)

i = 0;

temp = 0;

while(i <= len)

if(temp != 0)

else

for(j;j>= 0;j--)

printf("\n");

} return 0;

}

二、十六進製制轉十進位制

問題描述

從鍵盤輸入乙個不超過8位的正的十六進製制數字串,將它轉換為正的十進位制數後輸出。

注:

十六進製制數中的10~15分別用大寫的英文本母a、b、c、d、e、f表示。

樣例輸入

ffff

樣例輸出

65535

**:

#include #include #include int main()

else

r += temp * pow(16*1.0,len-1-i); }

printf("%lld",r);

return 0;

}

三、十進位制轉十六進製制

問題描述

十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。

它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。

十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,

以此類推,十進位制的30在十六進製制中是1e。

給出乙個非負整數,將它表示成十六進製制的形式。

輸入格式

輸入包含乙個非負整數a,表示要轉換的數。0<=a<=2147483647

輸出格式

輸出這個整數的16進製表示 樣例輸入 30 樣例輸出 1e

**:

#include #include int main()

else

i++;

n = n / 16; }

s[i] = '\0';

if(s[0] == '\0')

else

}printf("\n");

return 0;

}

藍橋杯進製轉換

問題描述 我們可以用這樣的方式來表示乙個十進位制數 將每個阿拉伯數字乘以乙個以該數字所處位置的 值減 為指數,以 為底數的冪之和的形式。例如 可表示為 這樣的形式。與之相似的,對二進位制數來說,也可表示成每個二進位制數碼乘以乙個以該數字所處位置的 值 為指數,以 為底數的冪之和的形式。一般說來,任何...

藍橋杯 進製轉換

問題描述 編寫函式將十進位制整數按8進製輸出,然後編寫main函式驗證該函式。例如輸入12,則輸出為 12 014,輸入32,則輸出32 040。輸入格式 輸入乙個整數。輸出格式 輸出這個整數的八進位制形式。方法使用除基取餘法。利用陣列,將每次除基取的餘數儲存在陣列中,注意最後資料輸出的陣列下標。i...

藍橋杯 演算法提高 進製轉換

演算法提高 進製轉換 時間限制 1.0s 記憶體限制 256.0mb 問題描述 程式提示使用者輸入三個字元,每個字元取值範圍是0 9,a f。然後程式會把這三個字元轉化為相應的十六進製制整數,並分別以十六進製制,十進位制,八進位制輸出。輸入格式 輸入只有一行,即三個字元。輸出格式 輸出只有一行,包括...