蓝桥杯基础练习——十六进制转八进制
2017-03-03 19:51
232 查看
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
之所以要贴出来是因为错了很多次,最后发现是输出错了。。。
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
之所以要贴出来是因为错了很多次,最后发现是输出错了。。。
#include <iostream> #include <cstring> #include <string> #include <vector> #include <queue> #include <cstdio> #include <set> #include <cmath> #include <algorithm> #include <queue> #define INF 0x3f3f3f3f #define MAXN 10000005 #define Mod 10001 using namespace std; string num1; string change(char e) { string low[]= {"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001"}; if(e<='9'&&e>='0') return low[e-'0']; if(e=='A') return "1010"; if(e=='B') return "1011"; if(e=='C') return "1100"; if(e=='D') return "1101"; if(e=='E') return "1110"; if(e=='F') return "1111"; } int ans[MAXN]; int main() { string tmp; int n; scanf("%d",&n); while(n--) { cin>>num1; tmp=""; int len=num1.length(); for(int i=0; i<len; ++i) tmp+=change(num1[i]); len=tmp.size(); if(len%3==2) tmp="0"+tmp; if(len%3==1) tmp="00"+tmp; len=tmp.length(); int sum=0,p=0; for(int i=0; i<=len-2; i+=3) { sum=(tmp[i]-'0')*4+(tmp[i+1]-'0')*2+(tmp[i+2]-'0'); ans[p++]=sum; } for(int i=0; i<p; ++i) { if(i==0&&ans[i]==0) continue; cout<<ans[i]; } cout<<endl; } return 0; }
相关文章推荐
- 蓝桥杯-- 基础练习 十六进制转八进制(大数操作)
- 蓝桥杯-基础练习-十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- [蓝桥杯练习系统]基础练习 十六进制转八进制
- 蓝桥杯-基础练习12 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 蓝桥杯 基础练习 十六进制转八进制
- 【蓝桥杯】【基础练习02】【十六进制转八进制】
- 蓝桥杯-基础练习-十六进制转八进制(被超时了!!!)
- "蓝桥杯“基础练习:十六进制转八进制
- 蓝桥杯基础练习——十六进制转八进制
- 蓝桥杯试题集 基础练习 十六进制转八进制
- "蓝桥杯“基础练习:十六进制转八进制
- 蓝桥杯 【基础练习】 十六进制转八进制
- 蓝桥杯:基础练习 十六进制转八进制
- 【蓝桥杯】基础练习 十六进制转八进制
- 蓝桥杯-基础练习-BASIC-12-十六进制转八进制
- 【蓝桥杯】 基础练习 十六进制转八进制