D


私信TA

用户名:ALS1111

访问量:22117

签 名:

等  级
排  名 55
经  验 11379
参赛次数 0
文章发表 132
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:
UN@`9(8SBF(U_T[4%M{RERU.png

①先初始化中心十字架的左半部分,十字架的大小是5*5,注意此处十字架的大小是固定的。

②将左半部分斜着的5条线进行填充,接着对上班部分和左半部份的直线进行填充,围几层就填充几条线,填充个数是2*i(i是层数)。
③将左上角对称填充到左下角。然后将左半部分对称填充到右半部分。

注意事项:
图片引用自  作者: tongxian      侵权可删

参考代码:

def function(n):  
    A = [['.' for j in range(5+4*n)] for i in range(5+4*n)]  
    if n == 0:  
        for i in range(5):  
            A[2][i] = '$'  
            A[i][2] = '$'  
  
    for k in range(3):  
        x = int((5+4*n+1)/2)-1  
        y = int((5+4*n+1)/2)-1-k  
        A[x][y] = '$'  
  
        xmove = x  
        ymove = y  
        for kk in range(n):  
            xmove = xmove-2  
            ymove = ymove-2  
            A[xmove][ymove] = '$'  
  
    for k in range(3):  
        x = int((5+4*n+1)/2)-1-k  
        y = int((5+4*n+1)/2)-1  
        A[x][y] = '$'  
  
        xmove = x  
        ymove = y  
        for kk in range(n):  
            xmove = xmove-2  
            ymove = ymove-2  
            A[xmove][ymove] = '$'  
  
    for i in range(1,n+1):  
        num = 2*i  
        x = int((5+4*n+1)/2)-1-2 - num  
        y = int((5+4*n+1)/2)-1  
  
        xmove = x  
        ymove = y  
        for j in range(num):  
            A[xmove][ymove] = '$'  
            xmove = xmove  
            ymove = ymove-1           
  
    for i in range(1,n+1):  
        num = 2*i  
        x = int((5+4*n+1)/2)-1  
        y = int((5+4*n+1)/2)-1-2 - num  
  
        xmove = x  
        ymove = y  
        for j in range(num):  
            A[xmove][ymove] = '$'  
            xmove = xmove-1  
            ymove = ymove  
    
    for j in range(int((5+4*n+1)/2)):  
        for i in range(int((5+4*n+1)/2)-2,-1,-1):  
            A[5+4*n-1-i][j] = A[i][j]  
  
    for i in range(5+4*n):  
        A[i][int((5+4*n+1)/2):] = A[i][int((5+4*n+1)/2)-2::-1]  
   
    for i in range(5+4*n):  
        for j in range(5+4*n):  
            print(A[i][j],end='')  
        print()  
  
  
if __name__ == '__main__':  
    n = int(input())  
    function(n)

 

 

0.0分

5 人评分

  评论区

  • «
  • »