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
    • 将 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

相关文章


有用资源