問題描述
給定n個十六進製制正整數,輸出它們對應的八進位制數。
輸入格式
輸入的第一行為乙個正整數n (1<=n<=10)。
接下來n行,每行乙個由0~9、大寫字母a~f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。
輸出格式
輸入的十六進製制數不會有前導0,比如012a。
樣例輸入239
123abc
樣例輸出
714435274
思路
如果直接轉化為十進位制數後再轉化為二進位制,長度肯定是超出了的。此時,可以先轉化為二進位制,再將二進位制轉化為八進位制。
每個十六進製制數對應四位二進位制數,每三位二進位制又決定乙個八進位制數。
可以用的設計技巧:用字典儲存對應的進製轉換值。
1 #include2 #includeview code3 #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 }
基礎練習 十六進製制轉八進位制
基礎練習 十六進製制轉八進位制 時間限制 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組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度...