Description:
请编程打印出边长为n的由大写字母A开始构成的横向菱形字符阵列。
Input:
输入一个正整数n(2<=n<=100)。
Output:
输出边长为n的由大写字母A开始构成的菱形字符阵列。格式见输出样例,相邻字母之间以一个空格隔开,字母顺序按顺时针沿着菱形的边从大写字母A到Z进行循环排列,即A -> B -> ... -> Z -> A -> ...
Sample Input:
10
Sample Output:
A B C D E F G H I J J K I L H M G N F O E P D Q C R B A Z Y X W V U T S
num = int(input())
start_space = (2*num-2)//2
end_space = 2*num-1
# print(start_space)
# print(end_space)
bian = start_space+end_space
ls = [[" "]*bian for i in range(num)]
x_y_ls = []
#shang
for j in range(start_space,bian,2):
x_y_ls.append([0,j])
xian = [0,j]
xian = xian #标记
#you
while(1):
x = xian[0] + 1
y = xian[1] - 1
xian = [x,y]
x_y_ls.append([x,y])
if(y==end_space-1):
break
#xia
xian = xian
while(1):
x = xian[0]
y = xian[1] - 2
xian = [x,y]
x_y_ls.append([x,y])
if(y==0):
break
#zuo
xian = xian
while(1):
x = xian[0] - 1
y = xian[1] + 1
xian = [x,y]
if(x==0):
break
x_y_ls.append([x,y])
# print(x_y_ls)
start_A = 65
for j in x_y_ls:
ls[j[0]][j[1]] = chr(start_A)
start_A+=1
if(start_A==91):
start_A = 65
for j in ls:
j = [str(x) for x in j]
print("".join(j))