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

2022-08-22 01:54:12 字數 1080 閱讀 8992

問題描述

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

輸入格式

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

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

輸出格式

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

【注意

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

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

樣例輸入239

123abc

樣例輸出

714435274

分析:一開始想先轉換成十進位制 再轉換成八進位制

但是題目中給的十六進製制的數太大 就放棄了這個想法。

後來看了這位老哥的做法

才知道原來要先轉換成二進位制

仔細想想確實 十六進製制相當於4位的二進位制

而八進位制相當於3位的二進位制

**如下

#include using

namespace

std;

string

a;string b; //

string型方便操作,方便在前面新增和後面新增字串

int c[10001000];//

八進位制都是數字,故直接定義為int;

intmain()

}//因為後面要進行每3個一組的對八進位制的轉換

//如果長度不是3的倍數,需要在前面添0

if(a.size()%3==1) b="

00"+b;

else

if(a.size()%3==2) b="

0"+b;

int j=0

;

for(int i=0;i3

)

for(int i=0;i)

cout

<}

}

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

基礎練習 十六進製制轉八進位制 時間限制 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組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度...