慕村225694
令人惊讶的是,人们只给出了转换成小基数的解决方案(比英文字母的长度要小)。没有人试图给出一个将任意基从2转换为无穷大的解。下面是一个非常简单的解决方案:def numberToBase(n, b):
if n == 0:
return [0]
digits = []
while n:
digits.append(int(n % b))
n //= b return digits[::-1]所以如果你需要把一些超大的数字转换成基地577,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],之后,您可以将其转换为任何您想要的基础。