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

2021-07-25 22:46:37 字數 1498 閱讀 7243

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

時間限制:1.0s   記憶體限制:512.0mb

問題描述

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

輸入格式

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

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

輸出格式

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

【注意】

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

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

樣例輸入2

39

123abc

樣例輸出

71

4435274

【提示】

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

#include

#include

using namespace std;

char s[100010];

bool b[400040];

int  a[400001];

int main()

if(s[i]=='1')

if(s[i]=='2')

if(s[i]=='3')

if(s[i]=='4')

if(s[i]=='5')

if(s[i]=='6')

if(s[i]=='7')

if(s[i]=='8')

if(s[i]=='9')

if(s[i]=='a')

if(s[i]=='b')

if(s[i]=='c')

if(s[i]=='d')

if(s[i]=='e')

if(s[i]=='f')

t-=4;

}t=4*length;

int p=0;

while(!b[t])

for(int i=1;i<=t;i+=3)

for(int i=p;i>=1;i--)

coutreturn 0;

} 舉例:

輸入:123abc

分析過程:

1    2    3    a    b    c

陣列s:       0001  0010  0011 1010  1011  1100(這裡

s的下標是從

0開始的)

length=6;

t=24;

陣列b:       0001  0010  0011 1010  1011  1100(注意:這裡

b的下表是從

24開始的)

t= 24

執行完第乙個迴圈後  t變為了0

執行t=4*length;--à t=24;

執行while(!b[t]) ---->t=21;

執行第二個迴圈  陣列a中存入資料

然後逆序輸出 4435274

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

問題描述 給定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行,每行為輸入對應的八進位制正整數。注意 輸...