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

2021-09-10 01:54:39 字數 1080 閱讀 1712

問題描述

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

輸入格式

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

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

輸出格式

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

【注意

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

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

樣例輸入239

123abc

樣例輸出

714435274

提示】

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

首先,因為題設16進製制字串的長度極其龐大(n<=100000),在之前的題目中可以使用標準庫函式幾行結束的方法在這體中不可行(long long都無法完整儲存下這個字串)。所以,只能自己通過處理字串的方式來解決。

可以注意到,題設為16進製制->8進製,皆為2的指數倍,因此可以將單個16進製制數轉化為4個2進製儲存,然後再3個一組將其轉化為8進製。但是需要注意,這樣我們需要將轉化為2進製的字串長度補全為3的倍數。

**如下

#include using namespace std;

string tobin(void)

} //將字串補全為3的整數倍

if (s.length() % 3 == 2)

s = "0" + s;

else if (s.length() % 3 == 1)

s = "00" + s;

/ return s;

}string tooct(string bin) else

} return oct;

}int main(void)

}

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

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

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

題目鏈結 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由09 大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格...

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

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