华为笔试——C++进制转换
题目:2-62进制转换
题目介绍:输入一个n1 进制的整数(包括负数),将其转换成n2 进制,其中n1 、n2 的范围是 [ 2,62 ] 。每个数字的范围是0-9、a-z、A-Z。不用考虑非法输入。
输入:
n1 n2
n1 进制整数
输出:
n2 进制整数
例:
输入:
8 16
-1352460
输出:
-5d530
分析:
这道题目需要考虑几点:负整数的输入;将输入的n1 进制的数转换成10 进制的数,再用长除法将这个10 进制的数转换成 n2 进制的数;a-z和A-Z与其代表的整数的相互转换(char 类型的ASC||码与整数的变换)。
代码如下:
#include <iostream>
#include <string>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
string str;
int size;
int i = ;
int result = ;
int n = ;
int r[];//长除法
char q[];
int n1, n2;
cout << "n1.n2" << endl;
cin >> n1 >> n2;
cout << "str" << endl;
cin >> str;
size = str.size();
char *p = new char[size];
strcpy(p, str.c_str());
if (p[] == '-') { p[] = ''; }//考虑到负数
for (i = ; i < size; i++)
{
if (p[i] >= 'a'&&p[i] <= 'z')
{
p[i] = p[i] - ;
}
if (p[i] >= 'A'&&p[i] <= 'Z')
{
p[i] = p[i] + ;
}
}//将a-z的字符意义化a=10、···
for (i = ; i < size; i++)
{
result += int(p[i] - ) * int(pow(n1, size - - i));
}
cout << result << endl;//计算十进制值
while ((result / n2) >= n2)
{
r[n] = result % n2;
result = result / n2;
n++;
}
r[n] = result % n2;
n++;
r[n] = result / n2;//取余取除值
for (i = ; i < (n + ); i++)
{
if (r[i] >= &&r[i]<=) { q[i] = r[i]+; }//a-z的输出转换
else if (r[i] >=&&r[i]<=) { q[i] = r[i]+; }//A-Z的输出转换
else { q[i] = char(r[i] + ); }//0-9转换
}
if (p[] == '') { cout << "-"; }//负数还原
for (i = ; i < (n + ); i++)
{
cout << q[n - i];
}
}
结果如图:其中输出的第二行为10 进制的该数。

华为笔试——C++进制转换的更多相关文章
- SQL Server 进制转换函数
一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...
- [No000071]C# 进制转换(二进制、十六进制、十进制互转)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- JS中的进制转换以及作用
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ...
- 结合stack数据结构,实现不同进制转换的算法
#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...
- 进制转换( C++字符数组 )
注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ...
- JS 进制转换
十进制转换成其他进制 objectname.toString([radix]) objectname 必选项.要得到字符串表示的对象. radix 可选项.指定将数字值转换为字符串时的进制. 例如 ...
- php的进制转换
学习了php的进制转换,有很多的知识点,逻辑,也有最原始的笔算,但是我们还是习惯使用代码来实现进制的转换,进制的转换代码有如下:二进制(bin)八进制( oct)十进制( dec)十六进制( hex) ...
- C++ 中数串互转、进制转换的类
/******************************************************************** created: 2014/03/16 22:56 file ...
- 【String与基本类型之间的转换】以及【进制转换】
1. 基本数据类型---->字符串类型: 方法一:使用连接一个空字符串,例如 基本数据类型+“” : 方法二:静态方法 String.valueOf(),具体有: String.valueOf ...
随机推荐
- 安装maven提示ERROR: JAVA_HOME is set to an invalid directory.
查询网上资料发现多种解决办法:有的是多写了分号,有的路径错误. 需要注意的是maven配置前需要配置好jdk的路径. 我的java_home 之前的配置为:C:\Program Files\Java\ ...
- vue进入/离开 & 列表过渡transition
一.transition过渡 1.需求1(优化):想要一种效果,想要ios那种页面切换效果,总而言之就是过渡效果. 附上官网介绍地址:https://cn.vuejs.org/v2/guide/tra ...
- 利用PDCA工具改进周例会
PDCA简介 PDCA循环又叫戴明环,是美国质量管理专家休哈特博士首先提出的,由戴明采纳.宣传,获得普及,从而也被称为“戴明环”. PDCA最早用来解决全面质量管理问题,但是PDCA也可以用来作为一个 ...
- Linux -- 目录基本操作(1)
cd 切换目录 1.切换到指定目录下 #cd 相对/绝对目录 [root@localhost ~]# cd /home/tom/demo [root@localhost demo]# 2.切换到某个用 ...
- Token ,Cookie和Session的区别
在做接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对token,cookie,session的区别还是一知半解. Cookie cookie 是一个非常具体的东西,指的就是浏 ...
- MySql多表关联,根据某列取前N条记录问题
近来遇到一个问题:“MySql多表关联,根据某列取前N条记录”. 刚开始一直在想,SQL语句是否可以做到直接查询出来,但几经折磨,还是没能写出SQL语句,-------如果有大牛的话,望指点迷津.我把 ...
- (解释文)My SQL中主键为0和主键自排约束的关系
上一篇我们说了关于自排如果主键是0的问题,在这里我搞清楚了原因,导致这种情况是因为在SQL中对自排设置了初始值: 从这里可以看到这两个变量一个是自增的初始值,一个是增量,这里都是1,所以在设置自增的时 ...
- appache 端口 更改
外网访问---->hosts文件映射服务名(127.0.0.1 xiaotian.cn)-->appache中httpd文件监听相关端口号(*:8080)--->appache中的v ...
- python3+pyzbar+Image 进行图片二维码识别
1.前言 最近公司有个项目要写个程序自动识别客户提交照片里的二维码,一接到这个任务马上就想到了用Python这个万能的工具! 2.搜寻 首先在网上到处找了很多“灵感”,看看其他人都会用什么包来完成这个 ...
- vue 解决跨域问题
1.后端处理允许跨域 2.反向代理跨域 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去去的网络信息.形象的说:它是网络信息的中转站. vue中设置代理: 1.config/in ...