Python 程序用于打印前 n 个数字的十进制、八进制、十六进制和小数二进制


假设我们有一个值 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

更新于:11-Oct-2021

1K+ 浏览量

开启您的 职业生涯

完成课程后获得认证

开始
广告