#loj183. 高精度进制转换

高精度进制转换

AdditionalFile183.zip

#183. 高精度进制转换

标签: 传统 | 时间限制: 2000 ms | 内存限制: 512 MiB 通过: 173 | 提交: 408

题目描述

这是一道模板题。

请实现一个程序,将一个非常大的非负整数由一个进制转换为另一个进制。

其中需要考虑的有 62 个不同的数位 {09,AZ,az}\{0 - 9, A - Z, a - z\},其中在十进制下,有 $A = 10, B = 11, \dots, Z = 35, a = 36, b = 37, \dots, z = 61$。

输入格式

第一行输入两个整数 a,ba, b,表示输入数字的进制以及输出数字的进制。

第二行输入一个 aa 进制非负整数 XX

输出格式

输出一个 bb 进制整数,为 XXbb 进制表示。

样例

输入

36 10
1AZ

输出

1691

$1 \times 36^2 + 10 \times 36^1 + 35 \times 36^0 = 1 \times 10^3 + 6 \times 10^2 + 9 \times 10^1 + 1 \times 10^0$

数据范围与提示

对于 100% 的数据,有:

  • 2a,b622 \le a, b \le 62
  • 1X1 \le Xaa 进制表示下的长度 105\le 10^5
  • b4b \ge 4 时,1X1 \le Xbb 进制表示下的长度 2×105\le 2 \times 10^5
  • b=3b = 3 时,1X1 \le Xbb 进制表示下的长度 3.5×105\le 3.5 \times 10^5
  • b=2b = 2 时,1X1 \le Xbb 进制表示下的长度 3×105\le 3 \times 10^5

所有评测数据随机生成。

为了方便各位进行本题调试对拍,本题提供采用 Go 语言实现的任意进制高精度非负整数转为 10 进制输出的代码。请前往 本题的附件区 下载源代码文件。

上述代码采用了和本题完全一样的输入格式,但是在输出的时候忽略原有的输出进制,直接按照 10 进制就行输出。各位也可以用上述代码检查本题的 40 组测试数据。

如果需要添加 Hack 数据(请保证与上述数据范围要求一致),欢迎添加讨论或者私信作者。