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. JS021. 拦截事件的显式处理与默认动作(Web API: event.preventDefault)

    Web API - event.preventDefault( ) Event 接口的  preventDefault( ) 方法,告诉 user agent :如果此事件没有被显式处理,它默认的动作 ...

  2. http接口实现附件对接

    1.推送附件 filebody /** * 推送附件方法 * @param args */ public static void main2(String[] args){ CloseableHttp ...

  3. SpringBoot-Web-初见

    目录 怎么开发一个网站? 静态资源 找到静态资源的存放目录 扩展自定义路径 首页定制 模板引擎Thymeleaf 员工管理系统-初见 国际化 国际化实现 编写国际化配置类 登陆功能 编写index.h ...

  4. Tomcat部署与优化

    目录: 一.Tomcat概述 二.Tomcat 服务部署 三.Tomcat 虚拟主机配置 四.Tomcat 优化 一.Tomcat概述 Tomcat是Java语言开发的,Tomcat服务器是-个免费的 ...

  5. Electron-vue项目使用 Inno Setup 创建安装包

    1.安装 Inno Setup 官网:https://jrsoftware.org/isinfo.php 2.打开 Inno Setup ,点击如下图Compli32.exe(首次安装默认打开) 3. ...

  6. form表单提交失败

    在使用一个登录/注册模板的时候,发现form表单不了,但是删除模板引用的js后就正常了,查看js文件的源码,有一个 const firstForm = document.getElementById( ...

  7. [闻缺陷则喜]关于boost的想法

    公司有个大约2万行的项目,用到了boost,我想取消掉不用boost.理由:一,可理解性差,除了高手很难弄懂.二,类太多,光头文件就1万多.大点的团队四五个高手,每人用一个boost类.高手流失后,很 ...

  8. 宝塔面板使用PM2命令提示Command Not Found解决方案

    1.查看node版本 进入/www/server/nvm/versions/node 查看node版本 2.复制以下代码 以node版本v12.18.1举例 PATH=$PATH:/www/serve ...

  9. Linux系列(21) - 光盘、U盘挂载

    挂载光盘 mount命令.umount命令 step-1 建立挂载点 原理:相当于建立盘符,建个目录读取光盘内容 命令:[root@localhost ~]# mkdir /mnt/cdrom/ 备注 ...

  10. gin 源码阅读(2) - http请求是如何流入gin的?

    推荐阅读: gin 源码阅读(1) - gin 与 net/http 的关系 本篇文章是 gin 源码分析系列的第二篇,这篇文章我们主要弄清一个问题:一个请求通过 net/http 的 socket ...