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

2021-09-13 03:51:30 字數 1540 閱讀 2068

問題描述

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

輸入格式

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

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

輸出格式

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

注意:

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

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

樣例輸入

2

39123abc

樣例輸出

71

4435274

解題思路

emmmm,其實也沒啥難的,就是需要給它轉換成二進位制,然後再轉換成八進位制就好了,就是處理的時候麻煩點而已,不過需要注意,十六進製制轉二進位制是一位轉四位,二進位制轉八進位制是三位轉一位。

注意:每次資料使用完一定要把陣列清空,用memset就可以,一般也不會超時。

**篇

#include #include #include #include using namespace std;

string str;

char six[100001], bin[400005], eig[200000];

int i, k;

void change1(char ch) ///十六進製制轉二進位制

case '1':

case '2':

case '3':

case '4':

case '5':

case '6':

case '7':

case '8':

case '9':

case 'a':

case 'b':

case 'c':

case 'd':

case 'e':

case 'f':

default : break;

}}void change2() ///二進位制轉八進位制

eig[k] = sum + '0';

}int main()

len = len * 4;

for(i = 1, k = 0; i <= len; i += 3, k++)

int flag = 0;

for(i = strlen(eig) - 1; i >= 0; i--)

}if(flag == 0) ///判斷有無輸出

cout << 0;

cout << endl;

}return 0;

}

藍橋杯 十六進製制轉八進位制

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

藍橋杯 十六進製制轉八進位制

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

藍橋杯 十六進製制轉八進位制

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