I - Base62

PS:一个任意进制转换的大数问题

传送门:Base62

短除法原理:

20(10进制) => 202(3进制)

20 = (2 * 3 ^ 2 + 0 * 3 ^ 1 + 2 * 3 ^ 0)

20 / 3 = 6 ......2 -> 2 * 3 ^ 0

6 / 3 = 2 .......0 -> 0 * 3 ^ 1

2 / 3 = 0 .......2 -> 2 * 3 ^ 2

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstring> using namespace std; int main()
{
int a, b;
string a_line, b_line;
cin >> a >> b >> a_line; vector<int> number; for(auto c: a_line)
{
if(c >= '0' && c <= '9') number.emplace_back(c - '0');
if(c >= 'A' && c <= 'Z') number.emplace_back(c - 'A' + 10);
if(c >= 'a' && c <= 'z') number.emplace_back(c - 'a' + 36);
}
reverse(number.begin(), number.end()); vector<int> res;
while(number.size())
{
int r = 0; //上一位的余数
// 每循环一次做一次短除法
for (int i = number.size() - 1; i >= 0; i --)
{
// 每个位置上处理前都是上一位的余数乘以进制数加上当前位上的数(注意进制为a)
number[i] += r * a;
// 这个位置上的余数为当前位置上的数除以b作为b进制的数
r = number[i] % b;
// 处理完后b进制的i位数
number[i] /= b;
}
res.emplace_back(r);
while(number.size() && number.back() == 0) number.pop_back();
} reverse(res.begin(), res.end());
for(auto x : res)
{
if(x <= 9) b_line += char(x + '0');
if(x >= 10 && x <= 35) b_line += char(x - 10 + 'A');
if (x >= 36) b_line += char(x - 36 + 'a');
} cout << b_line; return 0;
}

如果懒得注册账号,这里有个几乎一模一样的题目


宣传一波Acwing :Acwing124.数的转换

后面有时间会补上Java大数的解法(等我学一波(* ̄3 ̄)╭)

I-Base62的更多相关文章

  1. Base62编码与62进制

    Base62编码 Base62编码与Base64编码类似,都用于数据内容编码.基本原理请参看<Base64算法>. import java.io.ByteArrayOutputStream ...

  2. Golang 之 Base62 编码

    Base62 编码用62个可见字符来编码信息,也就是所谓的62进制,可用于缩短地址之类的.实现起来也很简单.当然,这个实现跟别人家的有可能不一样,反正自己能编能解就行. package main im ...

  3. Base系列编码浅析【base16 base32 base64 base85 base36 base 58 base91 base 92 base62】

    Base系列编码浅析 [base16   base32   base64   base85  base36  base 58  base91  base 92   base62]     base编码 ...

  4. 巧用 Base62 解决字段太短的问题

    最近银联一纸 259 号改造通知,所有支付机构开始改造支付交易,上传终端信息. 不知道其他支付机构的小伙伴针对这次改造是否开始了? 由于这次银联给的时间非常少,我们这边改动涉及到相关上游一起改造,所以 ...

  5. JAVA和PYTHON同时实现AES的加密解密操作---且生成的BASE62编码一致

    终于有机会生产JAVA的东东了. 有点兴奋. 花了一天搞完.. java(关键key及算法有缩减): package com.security; import javax.crypto.Cipher; ...

  6. base62与long的相互转换

    public static class Converter { private static String keys = "0123456789abcdefghijklmnopqrstuvw ...

  7. icpc 银川 I. Base62 任意进制的转换 短除法

    Problem Description As we already know, base64 is a common binary-to-text encoding scheme. Here we d ...

  8. Design Tiny URL

    Part 1: 前言: 最近看了一些关于短址(short URL)方面的一些博客,有些博客说到一些好的东西,但是,也不是很全,所以,这篇博客算是对其它博客的一个总结吧. 介绍: 短址,顾名思义,就是把 ...

  9. python ide ---wing 注册机

    注册机脚本代码如下: import sha import string BASE2 = '01' BASE10 = '0123456789' BASE16 = '0123456789ABCDEF' B ...

  10. iOS.ReactNative-5-make-react-native-to-support-dynamically-update

    基于React Native来实现App的热更新 热更新: 类似Hot-Patching,在程序不发布版本的前提下,对部分功能或者全部功能进行修改或者升级. JSX 1. JSX简介 1.1 http ...

随机推荐

  1. 详细解读go语言中的chnanel

    Channel 底层数据结构 type hchan struct { qcount uint // 当前队列中剩余元素个数 dataqsiz uint // 环形队列长度,即可以存放的元素个数 buf ...

  2. ubuntu14.04 安装MySQL 5.7

    ubuntu14.04 默认在线安装MySQL 5.5 1) wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb 2) dpk ...

  3. Swagger-初见

    目录 Swagger简介 SpringBoot集成Swagger 配置Swagger 配置扫描接口 配置Swagger开关 配置API分组 实体配置 常用注解 Swagger简介 前后端分离 前端 - ...

  4. shell编程之免交互

    目录: 一.Here Document 免交互 二.Expect 一.Here Document 免交互 使用I/O重定向的方式将命令列表提供给交互式程序或命令, 比如 ftp.cat 或 read ...

  5. ysoserial payloads/JRMPClient

    ysoserial payloads/JRMPClient 环境:JDK8u102 payloads/JRMPClient可以配合exploit/JRMPListener模块来使用 1.在自己服务器上 ...

  6. 在windows中给git修改默认的编辑器为sublime

    首先,需要配置sublime的为环境变量,这是为了让git能通过命令调用sublime.也可以写一个.bat脚本.然后,让git调用bat脚本也可以 配置环境变量path到subl.exe的目录 脚本 ...

  7. Spring Cloud Eureka 之常用配置解析

    [原创内容,转载.引用请注明出处] 1. 配置项解析 1.1 通用配置 # 应用名称,将会显示在Eureka界面的应用名称列 spring.application.name=config-servic ...

  8. 使用@EnableConfigurationProperties注册配置Bean时的命名规则

    Spring和Spring Boot开发中,常使用@ConfigurationProperties注解某个类,使其实例接受一组具有相同前缀的配置项. 可以使用@Component或Java Confi ...

  9. matlab函数randperm()

    randperm()会返回一个行向量. 1,randperm(n) 输出一个1×n的矩阵,元素值为1~n的整数,每个元素只出现一次,元素的顺序是随机的. 2,randperm(n,k) 输出一个1×k ...

  10. 一朵云、一张网、一体化 ——GRTN 打造最佳流媒体场景实践

    阿里巴巴 GRTN 是面向流媒体云原生设计的,方便客户构建自己的流媒体云原生应用,让流媒体服务无处不在. 在近期召开的分布式云主题报告会上,阿里云资深技术专家卢日发表了题为<GRTN 打造阿里云 ...