Python 程序用于打印前 n 个数字的十进制、八进制、十六进制和二进制
pythonserver side programmingprogramming更新于 2025/12/19 4:28:17
假设我们有一个值 n。我们必须在四个不同的列中打印前 n 个数字(1 到 n)的十进制、八进制、十六进制和二进制等值。众所周知,我们可以用前缀字符 d、o、X 和 b 分别表示十进制、八进制、十六进制和十进制的数字。
因此,如果输入为 n = 10,则输出将是
1 1 1 1 2 2 2 10 3 3 3 11 4 4 4 100 5 5 5 101 6 6 6 110 7 7 7 111 8 10 8 1000 9 11 9 1001 10 12 A 1010
为了解决这个问题,我们将遵循以下步骤 −
- l := (n 的二进制等效长度) - 2
- 对于 1 到 n 范围内的 i,执行
- f := 空字符串
- 对于"doXb"中的每个字符 c,执行
- 如果 f 不为空,则
- f := f 连接一个空格
- f := f + 通过将 l 转换为字符串进行右对齐格式化字符串,然后连接 c
- 如果 f 不为空,则
- 将 i 四次传递给格式化字符串 f 并打印该行
示例
让我们看看下面的实现以便更好地理解
def solve(n):
l = len(bin(n)) - 2
for i in range(1, n + 1):
f = ""
for c in "doXb":
if f:
f += " "
f += "{:>" + str(l) + c + "}"
print(f.format(i, i, i, i))
n = 10
solve(n)
输入
10
输出
1 1 1 1 2 2 2 10 3 3 3 11 4 4 4 100 5 5 5 101 6 6 6 110 7 7 7 111 8 10 8 1000 9 11 9 1001 10 12 A 1010
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

