藍橋杯 BASIC 12 十六進製制轉化為八進位制

2021-10-01 12:18:32 字數 1118 閱讀 6637

問題描述

給定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...