国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

基礎(chǔ)練習 十六進制轉(zhuǎn)八進制

2019-11-11 04:59:04
字體:
供稿:網(wǎng)友

問題描述  給定n個十六進制正整數(shù),輸出它們對應(yīng)的八進制數(shù)。輸入格式  輸入的第一行為一個正整數(shù)n (1<=n<=10)。  接下來n行,每行一個由0~9、大寫字母A~F組成的字符串,表示要轉(zhuǎn)換的十六進制正整數(shù),每個十六進制數(shù)長度不超過100000。輸出格式  輸出n行,每行為輸入對應(yīng)的八進制正整數(shù)。  【注意】  輸入的十六進制數(shù)不會有前導0,比如012A。  輸出的八進制數(shù)也不能有前導0。樣例輸入  2  39  123ABC樣例輸出  71  4435274  【提示】  先將十六進制數(shù)轉(zhuǎn)換成某進制數(shù),再由某進制數(shù)轉(zhuǎn)換成八進制。

解答代碼

#include <iostream>#include <string>using namespace std;int arr[10000001];int main(){	int n,len_str,i,j;	string str,str2;	cin>>n;	while(n--)	{		cin>>str;		len_str=str.length();		str2="";		for(i=0;i<len_str;++i)		{			switch(str[i])			{			case '0':str2+="0000";break;			case '1':str2+="0001";break;			case '2':str2+="0010";break;			case '3':str2+="0011";break;			case '4':str2+="0100";break;			case '5':str2+="0101";break;			case '6':str2+="0110";break;			case '7':str2+="0111";break;			case '8':str2+="1000";break;			case '9':str2+="1001";break;			case 'A':str2+="1010";break;			case 'B':str2+="1011";break;			case 'C':str2+="1100";break;			case 'D':str2+="1101";break;			case 'E':str2+="1110";break;			case 'F':str2+="1111";break;			default:break;			}		}				if(len_str%3==1)	str2="00"+str2;		else if(len_str%3==2)	str2="0"+str2;		len_str=str2.length();		j=0;		for(i=0;i<=len_str-2;i+=3)		{			arr[j]=(str2[i]-'0')*4+(str2[i+1]-'0')*2+(str2[i+2]-'0');			++j;		}		for(i=0;i<j;++i)		{			if(i==0 && arr[i]==0)					continue;			cout<<arr[i];		}		cout<<endl;	}	return 0;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵武市| 定结县| 故城县| 惠水县| 镇原县| 钟山县| 婺源县| 古浪县| 台州市| 忻城县| 香港 | 西安市| 长阳| 安远县| 甘孜县| 古蔺县| 玉门市| 惠水县| 万年县| 朝阳市| 星座| 沅江市| 布拖县| 九江市| 察雅县| 如东县| 石泉县| 丰镇市| 玉溪市| 乌恰县| 揭西县| 华亭县| 专栏| 育儿| 当雄县| 道孚县| 建德市| 佛学| 东兴市| 金溪县| 秦皇岛市|