Удивительно, но люди давали только решения, которые преобразуются в малые базы (меньше длины английского алфавита). Не было попытки дать решение, которое преобразует в любую произвольную базу от 2 до бесконечности.
Итак, вот супер простое решение:
defnumberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
итак, если вам нужно преобразовать какое-то супер огромное число в базу 577,
Которую позже вы можете преобразовать в любую базу данных, которую захотите
в какой-то момент времени вы заметите, что иногда нет встроенной библиотечной функции для выполнения того, что вы хотите, поэтому вам нужно написать свою собственную. Если вы не согласны, опубликуйте свое собственное решение со встроенной функцией, которая может преобразовать число с базой 10 в базу 577.
это связано с непониманием того, что означает число в некоторой базе.
Я призываю вас немного подумать, почему base в вашем методе работает только для n <= 36. Как только вы закончите, станет очевидно, почему моя функция возвращает список и имеет ту подпись, которая у нее есть.
Ответ 2
Если вам нужна совместимость со старыми версиями Python, вы можете либо использовать gmpy (который включает в себя быструю, полностью общую функцию преобразования int-в-string и может быть создан для таких старых версий – возможно, вам придется попробовать более старые версии, поскольку последние не тестировались для старых версий Python и GMP, а только для более свежих), либо, для меньшей скорости, но большего удобства, используйте код Python – например, для Python 2 проще всего использовать: