十六進製制轉八進位制(大數思路模擬)

2021-09-10 10:49:17 字數 1279 閱讀 6826

問題描述

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

輸入格式

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

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

輸出格式

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

【注意

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

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

樣例輸入239

123abc

樣例輸出

714435274

提示】

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

剛開始做這道題只是按了一般的思路——> 16 轉換成 10 ——>轉換成 8

然而 wa。。。。。原因是 16進製制這個數特別特別大,注意!!!!!!(十六進製制長度不超過100000)

如果轉換成 十進位制的話,,,肯定更大了……果然……我不wa誰wa。。。。

後來再想一想 十六進製制 與 八進位制 轉換不僅只有十進位制一種方法,還有 二進位制啊。

十六進製制的每一位轉換成 四位的 二進位制 ,然後 二進位制 每三位轉換成 八進位制……ok,,

佇列,棧真是個好東西,還好我會。一頓模擬。。。。ε=(´ο`*)))唉,,也算是過了

#include #include #include #include #include #include #include #include #define max 101

#define ll long long

using namespace std;

int main()

//cout<<"*** :"<='a'&&s[i]<='f')

//湊夠四位

while(cnt!=4)

}while(!st.empty())

// while(!q.empty())

//

while(!s.empty())

}ss.push(sum);

} int flag=0;

while(!ss.empty())

ss.pop();

} cout<}return 0;

}

十六進製制轉八進位制

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

十六進製制轉八進位制

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

十六進製制轉八進位制

資料很大 因此直接考慮用字串陣列來儲存十六進製制和八進位制 先根據 四位一體 的方法將十六進製制轉化為二進位制,而後根據 三位一體 將二進位制轉化為八進位制。include includeint main else if a i 1 else if a i 2 else if a i 3 else ...