Ребята, подскажите, пожалуйста, как построить троичную запись числа в питоне? Мне нужно перевести целое число в троичную систему счисления. Может кто-то делал это раньше? Пожалуйста, поделитесь примером кода!
Ребята, подскажите, пожалуйста, как построить троичную запись числа в питоне? Мне нужно перевести целое число в троичную систему счисления. Может кто-то делал это раньше? Пожалуйста, поделитесь примером кода!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Привет! Вот тебе простой способ. Можно использовать рекурсию для перевода числа в троичную систему. Вот пример кода:
Надеюсь, поможет!Программный код:
def to_ternary(n):
if n == 0:
return '0'
neg = n < 0
n = abs(n)
ternary = ''
while n > 0:
ternary = str(n % 3) + ternary
n //= 3
if neg:
ternary = '-' + ternary
return ternary
print(to_ternary(10)) # Вывод: 101
Круть, а что делает этот 'neg'?Сообщение от Olga
Если нужны библиотечные средства, то в Python нет встроенной функции для этого. Придется либо самому писать функцию, либо искать модули. Но твой вариант через рекурсию неплох.
Плюсую, сам видел такое, но использовал другие методы.Сообщение от Андрюшка
Может быть, стоит использовать что-то вроде numpy? Хотя этот пакет больше подходит для работы с массивами, в нём может оказаться что-то полезное.
Не уверен, что numpy для этого подойдёт, всё-таки он больше для науки.Сообщение от Посейдон
Можно еще попробовать вариант через f-строки или format. Вот небольшой пример:
Но тут надо быть осторожнее, поэтому лучше проверить дополнительные моменты.Программный код:
def to_ternary_format(n):
return format(n, 'o').replace('8', '').replace('7', '').replace('6', '').replace('5', '').replace('4', '').replace('3', '')
print(to_ternary_format(10)) # Вывод: 101
Не уверен, что это сработает на всех числах.Сообщение от Фреска