解题思路:
这是语句题解第一名思路写出来的哦,大家结合着看最好嘞

注意事项:

参考代码:

# 绘画边界的函数

def par(r, c, w):

    t[r][c] = '$'

    for i in range(1,w+1):

        t[r-i][c] = '$'

    for i in range(1, 3):

        t[r-w][c+i] = '$'

    for i in range(1, 3):

        t[r-w-i][c+2] = '$'

    for i in range(1,w+1):

        t[r-w-2][c+2+i] = '$'


n = eval(input())  # 输入的包围层数

r = 5 + 4*n

t = [['.' for i in range(r)] for j in range(r)]

# 先画1/4的图形

# 画中心十字

for i in range(r//2-2, r//2+1):

    t[r//2][i] = '$'  # 这里要注意数列是从0开始的

    t[i][r//2] = '$'


# 包围的1/4边界绘画

for i in range(1, n+1):

    col = r//2 -2 - 2*i

    row = r//2

    walk = 2*i

    par(row,col,walk)

# 1/4左右对称绘画

for i in range(r//2):

    for j in range(r//2+1):

        t[j][r-1-i] = t[j][i]

# 1/2上下对称绘画

for i in range(r//2):

    for j in range(r):

        t[r-i-1][j] = t[i][j]

    

for i in range(len(t)):  # 像这样直接检测t的话是只检测其中的一个维度的哦

    # 这里返回的是行数,如果是len(t[i])则返回的是i行的列数

    print(''.join(t[i]))  # 将一维的数列字符串连接起来,期间的间隙为''

点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论