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

2021-10-01 23:43:43 字數 948 閱讀 6492

輸入的第一行為乙個正整數n (1<=n<=10)。   接下來n行,每行乙個由09、大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。

輸出n行,每行為輸入對應的八進位制正整數。輸入的十六進製制數不會有前導0,比如012a。輸出的八進位制數也不能有前導0。

在這裡給出一組輸入。例如:

2

39123abc

在這裡給出相應的輸出。例如:

71

4435274

首先將這個十六進製制數每1位轉換成4位,變成乙個二進位制數,再將這個二進位制數每3位合併為1位,轉換為八進位制數。

注意:每三位進行合併,這個二進位制長度可能不會被三整除,所以最後還要單獨考慮一次。

#include

#include

#include

#include

using

namespace std;

intmain()

}int cnt =

0,sum=

0,y=1;

string r;

for(

int j = t.

length()

-1; j >=

0; j--

)//每三位開始合併,轉換為八進位制數

if(j ==0)

//考慮最後一次的情況

}for

(int j = r.

length()

-1; j >=

0; j--

) cout << r[j];}

cout << endl;

r.clear()

; t.

clear()

;}return0;

}

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

我的 出了一些奇怪的問題,本來我用來儲存結果的陣列逐個輸出的話和樣例結果是一樣的,但是到最後把陣列裡面的數組合成為乙個數時卻少了個1 這裡是 執行的結果,其中 後面的單個資料是儲存結果陣列res的值。我對res陣列做了res res x i pow 16,length i 1 操作後,為什麼少了乙個...

十六進製制轉八進位制

時間限制 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 行,每行為輸入對應的八進位制正整...