要打印以下给出的图案 用户程序应输入的行数需要与任何行数兼容 例如,如果用户输入5行
12345
2 4
3 3
4 2
54321
我尝试使用嵌套的for循环
row=5
col=5
n=1
z=5
for x in range(1,row+1):
for y in range(1,col+1):
if (x == 1):
print(n,end="")
n=n+1
else:
print(end="")
print("")
for y in range(1,col+1):
if (x == 1):
print(z,end="")
z=z-1
else:
print(end="")
print("")
我希望如此
12345
2 4
3 3
4 2
54321
我得到的输出是这个
12345
54321
答案 0 :(得分:1)
如果您需要循环,则可以这样做:
row = int(input('enter number of rows: '))
spaces = 0
for i in range(1, row + 1):
print(i, end='')
spaces += len(str(i))
print()
for i in range(2, row):
print(i, ' ' * (spaces - 4), row - i + 1)
for i in range(row, 0, -1):
print(i, end='')
print()
row = 5
的输出:
12345
2 4
3 3
4 2
54321
row = 8
的输出:
12345678
2 7
3 6
4 5
5 4
6 3
7 2
87654321
row = 10
的输出:
12345678910
2 9
3 8
4 7
5 6
6 5
7 4
8 3
9 2
10987654321
答案 1 :(得分:0)
无需实际编写代码,就可以使用两个圆形数组。 1,2,3,4,5
和1,2,3,4,5
。一转左和一右。对于第一次和最后一次迭代,您将打印整个数组以及相反的数组。对于中间的元素,仅打印第一个和最后一个元素。
`1,2,3,4,5` now rotate both `2,3,4,5,1` and `5,1,2,3,4`
`2,x,x,x,4` print [-1],[0], rotate again `3,4,5,1,2` and `4,5,1,2,3`
`3,x,x,x,3` print [-1],[0], rotate again `4,5,1,2,3` and `3,4,5,1,2`
`3,x,x,x,3` print [-1],[0], rotate again `5,1,2,3,4` and `2,3,4,5,1`
`4,x,x,x,2` print [-1],[0]
`5,4,3,2,1` print whole inverse