解题思路:
这是语句题解第一名思路写出来的哦,大家结合着看最好嘞
注意事项:
参考代码:
# 绘画边界的函数
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分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复