Conversion of Integers to Strings in Arbitrary Bases
本题寻求一种将整数转换为任意基数字符串的方法。与 Python 的 int(str, base) 函数不同,该函数允许从指定基数的字符串创建整数,所需的方法是其逆过程,即从整数构造字符串。
一个简单的解决方案
直观上,人们倾向于关注转换为小基数(例如,小于英文字母的长度)。然而,这个问题需要一个通用的解决方案,适用于从 2 到无穷大的任何基数。
下面给出一个简单的解决方案:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
这个函数接受一个整数 n 和一个基数 b 作为输入并返回以 b 为基数表示 n 的数字列表。它的工作原理是迭代地将 n 除以 b 并将余数(即数字)收集到列表中。然后反转列表以获得正确的数字顺序。
例如,将 67854**15 - 102 转换为基数 577:
print(numberToBase(67854 ** 15 - 102, 577))
输出:
[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
这个结果可以进一步转换成任何其他想要的
关键点
以上是如何将整数转换为任意基数的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!