問題描述
給定n個十六進製制正整數,輸出它們對應的八進位制數。
輸入格式
輸入的第一行為乙個正整數n (1<=n<=10)。
接下來n行,每行乙個由0~9、大寫字母a~f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。
輸出格式
輸出n行,每行為輸入對應的八進位制正整數。
注意:
輸入的十六進製制數不會有前導0,比如012a。
輸出的八進位制數也不能有前導0。
樣例輸入
239123abc
樣例輸出
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組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度...