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

2021-07-12 05:54:26 字數 1256 閱讀 3509

問題描述

給定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;

const

char* g[16]=;

//16進製制--2進製對映

const

char* o[8]=;

//二進位制轉八進位制對映

string t_e(string t)//二進位制轉八進位制

return e;

}string s_t(string in)//16進製制轉二進位制

else

i++;

}i=0;

while(sum[i]=='0')//去除開頭的0使八進位制-二進位制規範化

return &sum[0]+i;//這點沒搞懂,,為什麼必須要對陣列取位址,而用陣列名不可以,應該和string有關,初學者.表介意

}int main()

cout

0;}

錯誤**:

#include

#include

#include

#include

using

namespace

std;

int g[6]=;

int s_t(string in)//十六進製制轉十進位制

else

i++;

}return sum;

}int main()

return

0;}

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

問題描述 給定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。輸出格...

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

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