python - 如何将十进制数转换为具有最小值的基数?

标签 python c math radix

在一次编码竞赛中,我得到了一个十进制数字,并被问到这个数字是否可以在任何其他基数中具有最小值,如果是,则将其转换。 例如。设十进制数为 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/

相关文章:

python - PySide 网络浏览器出现,但检查器不显示任何内容

c - c 中的参数评估

c# - C# 中的 FILETIME 舍入以适应 FAT 舍入

c - 未初始化的 2d 指针的取消引用和地址运算符行为

c# - 每隔两行更改一次的方程式

java - 尝试使用 Math.floor 对数字进行舍入,但它没有在正确的点将它们切断

python - 在 python 中,返回在函数体中创建的对象会对其进行深度复制?

python - 在 python 中查询返回本地范围的对象

python - 多处理 Python 库中的慢速数据结构

c - 将文件扫描到C中的结构数组中