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

2021-08-17 22:32:56 字數 1384 閱讀 3703

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

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

問題描述

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

輸入格式

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

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

輸出格式

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

【注意】

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

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

樣例輸入2

39

123abc

樣例輸出

71

4435274

【提示】

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

思路:十六進製制->二進位制->八進位制

遇到的坑:1.沒有考慮到當十六進製制數是0時,哇,必須特殊判斷,若flag=0,即都是0時,結果是0;2.陣列越界情況 3.剩餘二進位制數的判斷

#include#include#include#includeusing namespace std;

char str[500005],str1[500005],str2[500005];//陣列越界情況

int main()

else if(str1[i-2]=='0'&&str1[i-1]=='1'&&str1[i]=='0') else if(str1[i-2]=='0'&&str1[i-1]=='1'&&str1[i]=='1') else if(str1[i-2]=='1'&&str1[i-1]=='0'&&str1[i]=='0') else if(str1[i-2]=='1'&&str1[i-1]=='0'&&str1[i]=='1') else if(str1[i-2]=='1'&&str1[i-1]=='1'&&str1[i]=='0') else if(str1[i-2]=='1'&&str1[i-1]=='1'&&str1[i]=='1')else if(str1[i-2]=='0'&&str1[i-1]=='0'&&str1[i]=='0')

} if(i==0)else

} else if(i==1)else if(str1[1]=='0'&&str1[0]=='1')else if(str1[1]=='1'&&str1[0]=='1')

} int flag=0;

for(int i=len2-1;i>=0;i--)

printf("%c",str2[i]);

flag=1;

} if(flag==0)

printf("\n");

} 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。輸出格...

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

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