基礎練習 十六進製制轉八進

2022-08-12 13:27:14 字數 1297 閱讀 7243

問題描述

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

輸入格式

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

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

輸出格式

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

樣例輸入239

123abc

樣例輸出

714435274

思路

如果直接轉化為十進位制數後再轉化為二進位制,長度肯定是超出了的。此時,可以先轉化為二進位制,再將二進位制轉化為八進位制。

每個十六進製制數對應四位二進位制數,每三位二進位制又決定乙個八進位制數。

可以用的設計技巧:用字典儲存對應的進製轉換值。

1 #include2 #include

3 #include4

5using

namespace

std;

67 mapget_map()

8 16

17 mapeight_mp()

18 24

25void solve(string s, map mp, mape_mp)

2633

//二進位制轉 8 進製

34//

每三個二進位制數為乙個八進位制數

35int len =t.size();

36int l = 0;37

int out_len = 0;38

int flage = 1;39

if(len%3 == 0)43

else

51//

go 52

int bg = 0;53

//去掉前導0

54if(t.substr(bg, 3) == "

000")57

58for(int i=0;i)

62 cout<

6465

intmain()

6679

80for(int i=0;i!=n;i++)

8384

delete

str;

8586

return0;

87 }

view code

基礎練習 十六進製制轉八進位制

基礎練習 十六進製制轉八進位制 時間限制 1.0s 記憶體限制 512.0mb 錦囊1 錦囊2 錦囊3 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整...

基礎練習 十六進製制轉八進位制

問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸出n行,每行為輸入對應的八進位制正整數。注意 輸...

基礎練習 十六進製制轉八進位制

基礎練習 十六進製制轉八進位制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度...