算法题----任意进制转换(C++)
#include <bits/stdc++.h>
using namespace std;
int toInt(char c)
{
// char c = s;
if(c >= '0' && c<= '9') return c - '0';
else if(c >= 'a' && c<= 'z') return c - 'a' + 10;
else return c - 'A' + 10;
}
int main()
{
int a, b; // a原进制,b转换进制
cin >> a>> b;
string str; // 用字符串表示的数字
cin >> str;
bool negative = false; // 标记是否为负数,false为正,true为负
if(!str.empty()) // 去掉数字前的所有空格
{
str.erase(0,str.find_first_not_of(" "));
}
if(str[0] == '+')
str = str.substr(1,str.length() - 1);
else if(str[0] == '-')
{
negative = true;
str = str.substr(1,str.length() - 1);
}
int y = 0; // str的十进制表示
int aa = 1; // 表示每次计算中进制的幂次
for(int i = str.length() - 1; i >= 0; i--)
{
y = y + toInt(str[i]) * aa;
aa = aa * a;
}
string res;
string tmp;
do{ // 此处一定要用do...while(),防止输入是0的情况
tmp = to_string(y%b) ;
y = y / b;
res = tmp + res;
}while (y!=0);
if(negative)
res = '-' + res;
cout << res << endl;
return 0;
}
算法题----任意进制转换(C++)的更多相关文章
- poj1220 (高精度任意进制转换)
http://poj.org/problem?id=1220 高精度任意进制转换 代码是从discuss里找到的,据说是maigo神牛写的. 超精简!! 我自己第一写的时候,还把n进制先转成10进制, ...
- python任意进制转换
python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...
- lua之m进制转换为n进制-任意进制转换算法
够无聊的写这个,为防止需要的人也无聊一遍,写个吧 算法有n种,但是,咱们一种就够用了 --数组倒序排列 local function orderByDesc( input ) local output ...
- Python版任意进制转换
def decimalToAny(num,n): baseStr = {10:"a",11:"b",12:"c",13:"d&qu ...
- 2~62位任意进制转换(c++)
进制转换的符号表为[0-9a-zA-Z],共61个字符,最大可表示62进制. 思路是原进制先转换为10进制,再转换到目标进制. 疑问: 对于负数,有小伙伴说可以直接将符号丢弃,按照整数进行进位转换,最 ...
- 【C/C++】任意进制转换
进制转换:R进制->10进制:10进制->R进制. #include<bits/stdc++.h> using namespace std; /*函数:r进制转换成10进制*/ ...
- itoa()、atoi()、任意进制转换
头文件:<stdlib.h> itoa --功能:将任意类型的数字转换为字符串.在<stdlib.h>中与之有相反功能的函数是atoi. atoi----功 能: 将字符串转换 ...
- (任意进制转换)将 r 进制数转成 k 进制数
我们知道任意进制转换为十进制,都是乘以基数的多少次方,然后相加: 十进制转换为任意进制,都是除以基数,然后倒着取余数: 所以这里是用十进制数中转,实现任意进制数的转换 #include<iost ...
- Java实现 蓝桥杯VIP 算法训练 ALGO-16进制转换
算法训练 进制转换 时间限制:1.0s 内存限制:256.0MB 问题描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的 ...
随机推荐
- jQuery简易Ajax(六)
一.jQuery中ajax的两种书写方式[一般采用第二种方式]1.$.ajax(url,[setting]); 2.$.ajax([setting]); setting参数说明:setting为一个对 ...
- PostgreSql那点事(文件读取写入、命令执行的办法)
• 2013/07/9 作者: admin PostgreSql那点事(文件读取写入.命令执行的办法) 今天无意发现了个PostgreSQL环境,线上学习了下,一般的数据注射(读写数据库)差异不大,不 ...
- idea/借阅系统的APP开发
(一) 今天去还书时,偶尔想到的idea. 看着在自主借还书机器面前的长龙,我突然想到为什么不将这部机器的功能弄成APP? 通过用手机扫条形码借书不是很方便吗? 哦,不行.借书可以,怎么确保用户将书还 ...
- Django之mysql数据库配置
在settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'my ...
- Odoo Controller详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826241.html 一:Controller 一般通过继承的形式来创建controller类,继承自od ...
- linux 账户控制
用户 用户是能够获取系统资源的权限的集合. linux用户组的分类: 管理员 root :具有使用系统所有权限的用户,其UID 为0. 普通用户 : 即一般用户,其使用系统的权限受限,其UID为500 ...
- SpringCloud2.0 Hystrix Feign 基于Feign实现断路器 基础教程(七)
1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集 ...
- List 分隔多次执行 且在同一个事物当中
@Override public boolean insrtListDatas(List<EtlCheckrecord> listmap, int fen) { if(fen<=0) ...
- 手抄吧1:windows web server
字母写的他妈的 太恶心了 以后努力改 天天敲代码 好恶心的字体
- socks_send(fd,sbuf,strlen(sbuf));
unix 命名socket发送直接发送 1024字节 计算strlen 计算的字符不正确,截取 无法正常发送