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

2021-09-11 18:02:43 字數 1390 閱讀 8185

問題描述

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

輸入格式

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

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

輸出格式

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

【注意

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

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

樣例輸入239

123abc

樣例輸出

714435274

提示】

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

解法1:

#include #include int main()

while(n>0)

free(arr);

return 0;

}

執行結果:

可能是我想的太簡單了!只用了乙個不同進製數的佔位符表示就寫出來了!但是放在藍橋官網的練習系統中報的是執行錯誤!

(我也不知道是**有問題o(╥﹏╥)o)

解法2(後來我又在網上搜了一種解題思路,和我的完全不一樣!是更高大上的解法!)

#include #include #include using namespace std;

/*解題思路:1.用字串接收待轉換的十六進製制數。用函式將其轉換為二進位制儲存在字串中

2.將二進位制轉換為八進位制。其中有乙個問題:乙個十六進製制位轉換成二進位制是4位,

但是乙個八進位制位轉換二進位制占3位。所以要注意位前補0的問題

3.輸出的八進位制數也不能有前導0,所以當第一位數為0時就不輸出。

*/string hextobin(string hex);

vectorbintooct(string bin);

int main()

vectorresult;

vector::iterator it;

for(int i=0;ibintooct(string bin)

return otc;

}

執行結果與和解法一的一樣。

(但是提交到藍橋系統上依舊是有問題o(╥﹏╥)o,不過沒關係,多一種思路解題,先自己敲一遍再說)

解法二(思路**):

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

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

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

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

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

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