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
- 如果 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
广告