我让下面的代码使用从0到9的数字打印倒金字塔。但是,我很好奇如何更改此代码以按从金字塔末尾开始的顺序打印数字?
height = 5
num = 0
for i in reversed(range(1, height + 1)):
print(" " * (height - i), end="")
for j in range((i - 1) * 2 + 1):
print(num, end="")
if num == 9:
num = 0
else:
num += 1
print("\r")以上代码的输出为:
012345678
9012345
67890
123
4所需输出:
789012345
0123456
56789
234
1发布于 2020-11-25 19:08:26
h = 10
z = [1, 2, 5, 0, 7, 6, 7, 0, 5, 2]
for i in reversed(range(1, h+1)):
s = ''
m = (i % 10) - 1
n = z[m]
for j in range(i, (i-1)+(2*i)):
s += str(n)
n = n + 1 if n < 9 else 0
else:
print(f'{s:^{(h-1)+(2*h)}}') 2345678901234567890
56789012345678901
012345678901234
7890123456789
67890123456
789012345
0123456
56789
234
1发布于 2020-11-25 15:21:17
如果您不想首先计算起始编号,也可以计算普通金字塔的行数,将每行保存在列表中,然后在打印前颠倒列表顺序。
https://stackoverflow.com/questions/64999919
复制相似问题