[蓝桥杯]十六进制转八进制
来源:互联网 发布:淘宝怎样进行实名认证 编辑:程序博客网 时间:2024/05/29 04:24
* 基础练习 十六进制转八进制 *
- 问题描述
- 代码
- 代码分析
问题描述
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
代码
#include <iostream>#include <cstdio>#include <cmath>#include <vector>using namespace std;int main(void){ int n;//个数 cin>>n; for(int i = 0; i < n; ++i) {//对输入的n个数逐个操作 vector<int> v; string s; cin>>s; int m = s.length(); //16 转 2 for(int j = 0; j <m;++j) { char tmp = s.at(j); if( tmp >= '0' && tmp <= '9') {//对0-9处理 vector<int> t; int a = tmp - '0'; //将每个十六进制转成二进制逆序输入临时vector t中 //比如2 转成二进制直接输入是 0100 输入v中 for(int k = 0; k < 4; ++k) { if( a != 0) { t.push_back(a%2); a /= 2; } else//对未输出满4位的进行补0 { t.push_back(0); } } //将v向量中的二进制逆序输回v向量 //比如 2->t:0100->v:0010 for(int k = t.size()-1; k >= 0;--k) { v.push_back(t[k]); } } else {//对A-F进行同样的处理 vector<int> t; int a = tmp - 'A' + 10; while( a != 0) { t.push_back(a%2); a /= 2; } for(int k = t.size()-1; k >= 0;--k) { v.push_back(t[k]); } } } // for(int j = 0; j < v.size();++j) // cout<<v[j]; // cout<<endl; //对未满3的整数位的v向量补0 //因为每三位转换成8进制 int s_v = v.size(); int m_v = s_v % 3; if(m_v == 1) { v.insert(v.begin(),0); v.insert(v.begin(),0); } if(m_v == 2) { v.insert(v.begin(),0); } //2 转 8 vector<int> oct; for(int j = 0; j < v.size(); j+=3) { int o_tmp = v[j] * 4 + v[j+1]*2 + v[j+2]*1; if(oct.size() != 0 || o_tmp != 0)//将前置0全部忽略掉 oct.push_back(o_tmp); } for(int j = 0; j < oct.size();++j) cout<<oct[j]; cout<<endl; } return 0;}
代码分析
阅读全文
0 0
- 蓝桥杯 十六进制转八进制
- 蓝桥杯--十六进制转八进制。。。
- 蓝桥杯 十六进制转八进制
- 蓝桥杯:十六进制转八进制
- 蓝桥杯 十六进制转八进制
- 蓝桥杯 十六进制转八进制
- 蓝桥杯-十六进制转八进制
- 蓝桥杯-十六进制转八进制
- 蓝桥杯-十六进制转八进制
- 蓝桥杯-十六进制转八进制
- [蓝桥杯]十六进制转八进制
- [蓝桥杯]十六进制转八进制
- 蓝桥杯十六进制转八进制,大数。
- 蓝桥杯基础训练 十六进制转八进制
- 蓝桥杯:十六进制转八进制算法
- 蓝桥杯JAVA 十六进制转八进制
- 关于蓝桥杯十六进制转八进制
- 蓝桥杯 基础训练 十六进制转八进制
- Java高并发,如何解决,什么方式解决
- C++中派生类对基类成员的三种访问规则
- Xcode调试的时候发现 没有所选设备或所选设备xcode不支持
- 数组对象排序
- Spring-mvc.xml
- [蓝桥杯]十六进制转八进制
- 数据结构实验之图论四:迷宫探索
- JS中的call()方法和apply()方法用法总结
- 图——单源最短路径问题-dijkstra算法
- 多线程下载+视频播放
- Flume+Kakfa+Spark Streaming整合(运行WordCount小例子)
- Java 中的 static 使用之静态初始化块
- shell学习二十三--case语句编写mysql启动脚本
- 获取鼠标位置坐标