問題描述
給定n個十六進製制正整數,輸出它們對應的八進位制數。
輸入格式
輸入的第一行為乙個正整數n (1<=n<=10)。
接下來n行,每行乙個由0~9、大寫字母a~f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。
輸出格式
輸出n行,每行為輸入對應的八進位制正整數。
【注意】
輸入的十六進製制數不會有前導0,比如012a。
輸出的八進位制數也不能有前導0。
樣例輸入239
123abc
樣例輸出
714435274
【提示】
先將十六進製制數轉換成某進製數,再由某進製數轉換成八進位制。
題意:給定乙個十六進製制的數,轉化為8進製的輸出
思路:主要是怕溢位,所以考慮使用string來完成,先把十六進製制的數對應的數轉化為二進位制的,然後把二進位制的轉化為八進位制,十六進製制轉化為二進位制是乙個數用4位二進位制的數表示,而八進位制的數轉化位二進位制是乙個數用3位二進位制的數表示。根據這個特點,先把十六進製制的數對應的二進位制的數進行拼接,然後對不夠3倍數進行前面填0,最後對該二進位制字串進行每三位的遍歷,轉化為八進位制的。
**:
#include #include#includeusing namespace std;
string a[16]=;//儲存十六進製制每個數對應的二進位制
string b[8]=;//儲存八進位制每個數對應的二進位制
char caleight(string s) }}
int main(int argc, char *ar**)
p = num.length();
while(p%3!=0)p++;
num.insert(0,p-num.length(),'0');//補齊前面的不夠的0
for(int i = 0;iwhile(ans[0]=='0')
cout<} return 0;
}
藍橋杯 BASIC 12 十六進製制轉八進位制
時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸...
藍橋BASIC 12 十六進製制轉八進位制
試題 基礎練習 十六進製制轉八進位制 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由09 大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六...
BASIC 12 基礎練習 十六進製制轉八進位制
題目鏈結藍橋杯 基礎練習 題解 錦囊1 使用二進位制。錦囊2先把十六進製制轉成二進位制,每位十六進製制正好轉成4位二進位制,然後再將二進位制轉成八進位制,每三個二進位制轉成乙個八進位制。問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。轉換2進製。include include incl...