如果我输入数字,则通过数字创建菱形,它应该打印与输入数字相同的行数,并打印数字直到指定的数字,我没有确切的解决方法,请帮帮我。
示例:
如果输入为4
这将是预期的输出。
1
1 2 3
1 2 3
1
如果输入为5
这将是预期的输出。
1
1 2 3
1 2 3 4 5
1 2 3
1
如果输入为7
这将是预期的输出。
1
1 2 3
1 2 3 4 5
1 2 3 4 5 6 7
1 2 3 4 5
1 2 3
1
我尝试过
size = 4
maxlen = len(str(size * size))
m = size * 2 - 1
matrix = [[' ' * maxlen] * m for _ in range(m)]
for n in range(size * size):
r = n // size
c = n % size
matrix[c + r][size - r - 1 + c] = '{0:{1}}'.format(n + 1, maxlen)
print '\n'.join(''.join(row) for row in matrix)
但是我没有确切的解决方案。请帮帮我..
答案 0 :(得分:0)
def pattern_gen(n):
k = n
for i in range(1, n + 1):
if i % 2 != 0:
for j in range(0, int(k/2)):
print(end=" ")
for j in range(1, i+1):
print(j, end="")
print()
k = k - 1
k = 1
if n % 2 != 0:
n = n-1
k = 2
for i in range(n, 0, -1):
if i % 2 != 0:
for j in range(0, int(k/2)):
print(end=" ")
for j in range(1, i+1):
print(j, end="")
print()
k = k + 1