在一次编码竞赛中,我得到了一个十进制数字,并被问到这个数字是否可以在任何其他基数中具有最小值,如果是,则将其转换。
例如。设十进制数为 234
那么我们可以将其转换为具有最小值的其他基数吗?
最佳答案
我假设您给出了一个数字序列,并且需要确定该数字序列具有最小值的基数。由于基数需要大于最大数字,但较大的基值也意味着每个数字的值较大(除了一位数字),因此最小基数为 d_max + 1
,其中 d_max
是最大的数字:
def min_base(s: str) -> int:
return max(int(x) if x.isdigit() else ord(x) - 87 for x in s.lower()) + 1
print(min_base('12345')) # 6
print(min_base('1A2B')) # 12
print(min_base('BCA')) # 13
# OP's example:
print(int('234', base=10)) # 234
print(int('234', base=min_base('234'))) # 69
关于python - 如何将十进制数转换为具有最小值的基数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57015390/