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
- 对于i在范围1到n中,做以下步骤:
- 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