蓝桥杯 基础练习 BASIC-12 十六进制转八进制
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
//十六进制转二进制,二进制转八进制 #include <iostream>
#include <map>
using namespace std; int main() {
string s; //输入的十六进制
string binaryNum; //二进制数
int n;
cin >> n; string str[] = {"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", ""}; map<string, string> m;
m[""] = ""; m[""] = ""; m[""] = ""; m[""] = "";
m[""] = ""; m[""] = ""; m[""] = ""; m[""] = ""; for (int i = ; i < n; i++)
{
cin >> s;
int len_s = s.length();
for(int j = ; j < len_s; j++)
{
if(s[j] > '')
{
binaryNum += str[s[j] - 'A' + ];
}
else
{
binaryNum += str[s[j] - ''];
}
} int len_b = binaryNum.length(); //二进制数的长度
if(len_b % == ) //将二进制的长度转为3的倍数
{
binaryNum = "" + binaryNum;
}
else if(len_b % == )
{
binaryNum = "" + binaryNum;
} int flag = ; //前导为0标志
string temp; //获取三位二进制数,将其转为八进制
string octalNum; //八进制数
for(int j = ; j < len_b; j += )
{
temp = binaryNum.substr(j, );
octalNum = m[temp];
if(j == && octalNum == "") //如果取出的二进制数前三位为0,则重新取接下来的3位二进制数
{
flag = ;
continue;
}
if(flag == && j == && octalNum == "") //如果接下来的二进制还为0,则继续取(后边取的肯定不是0)
{
continue;
}
cout << octalNum;
} cout << endl;
binaryNum = "";
} return ;
}
蓝桥杯 基础练习 BASIC-12 十六进制转八进制的更多相关文章
- java 蓝桥杯基础练习 01字串 进制转换
问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能.它们的前几个是: 请按从小到大的顺序输出这32种01串. 输入格式 本试题没有输入. 输出格式 输出32行,按从小到大的顺 ...
- 蓝桥杯 基础练习 BASIC-30 阶乘计算
基础练习 阶乘计算 时间限制:1.0s 内存限制:512.0MB 问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*…*n. 算法描述 n!可能很大,而计算机能表示的整数范围有 ...
- 蓝桥杯 基础练习 BASIC-19 完美的代价
基础练习 完美的代价 时间限制:1.0s 内存限制:512.0MB 问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的.小龙龙认为回文串才是完美的.现在给你一个串,它不一定 ...
- 蓝桥杯 基础练习 BASIC-22 FJ的字符串
基础练习 FJ的字符串 时间限制:1.0s 内存限制:512.0MB 问题描述 FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = ...
- 蓝桥杯 基础练习 BASIC-25 回形取数
基础练习 回形取数 时间限制:1.0s 内存限制:512.0MB 问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度.一开始位于矩阵左上角,方向向下. 输入格式 ...
- 蓝桥杯 基础练习 BASIC-24 龟兔赛跑预测
基础练习 龟兔赛跑预测 时间限制:1.0s 内存限制:512.0MB 问题描述 话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑.于是世界上各 ...
- 蓝桥杯 基础练习 BASIC-23 芯片测试
基础练习 芯片测试 时间限制:1.0s 内存限制:512.0MB 问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多. 每个芯片都能用来测试其他芯片.用好芯片测试其他芯片时, ...
- 蓝桥杯 基础练习 BASIC-15 字符串对比
基础练习 字符串对比 时间限制:1.0s 内存限制:512.0MB 问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字 ...
- 蓝桥杯 基础练习 BASIC-14 时间转换
基础练习 时间转换 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间 ...
随机推荐
- zip无法解压
使用unzip解压,提示 [root@iZ28g3behi3Z html]# unzip /var/www/html/deyizhonggong.zipArchive: /var/www/html/ ...
- Java IO操作——数据操作流DataOutputStream和DataInputStream的使用
学习目标 掌握DataOutputStream和DataInputStream的作用 可以使用DataOutputStream和DataInputStream写入和读入数据 数据操作流 在io包中, ...
- [日常训练]Z国特色社会路
Description 小$W$非常喜欢社会主义,这天他开始研究它的优越性. 他发现它们国家十分乐于修建特色的社会主义道路.具体的说,$Z$国有$n$座城市,由$m$条有向边连接,城市从$1$编号. ...
- Java中异常的捕获顺序(多个catch)
import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IO ...
- Shell 双括号概述
1. 比较两个数的大小 #!/bin/bash ## 定义变量 a= b= ## 方法1,一个方括号,需要转义 if [ $a \> $b ];then echo "方法1:yes&q ...
- Linux命令详解-cd
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. ...
- Intellij IDEA 配置Subversion插件实现步骤详解
在使用Intellij的过程中,突然发现svn不起效了,在VCS–>Checkout from Version Control中也未发现Subversion这一项.如下图: 一.原因查找 经过 ...
- 【OpenGL ES】关于VBO(Vertex Buffer Object)的一些坑——解析一些关于glBuffer的函数
最近在写毕设的时候用到OpenGL ES中的VBO,由于对一些接口用到的变量不了解被坑得很惨,在此记录一下防止以后再被坑. 本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cn ...
- CrateDB——全文搜索使用的是lucene,尚不知其底层实现
CrateDB: The fast, scalable, easy to use SQL database with native full text search https://crate.io ...
- struts中操作request,session
在Action类中操作request,session 方法一.利用ActionContext.getContext().get("request"); //返回的是Map集合 Ma ...