Ваша линия binary += '0' if n % 2 == 0 else '1'
на самом деле не нужна, по моему мнению.binary += n % 2
будет достаточно.
Сначала мы должны определить набор цифр.Поскольку мы знаем, что база будет меньше 17, я взял набор из 17 цифр (digit_list).Для данной базы k, digit_list [k] будет нашими доступными цифрами.В остальном функция такая же.мы добавляем basek_num с корр.значение в digit_list n%k
.пока наше число не станет 0.
def decimal_to_basek(n, k):
# return bin(n)[2:]
digit_list = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g',]
if n == 0:
return '0'
basek_num = ''
while n > 0:
basek_num += digit_list[n % k]
n = n//k
return basek_num[::-1]