解题思路:
这是语句题解第一名思路写出来的哦,大家结合着看最好嘞
注意事项:
参考代码:
# 绘画边界的函数
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 人评分
简单的a+b (C语言代码)浏览:760 |
printf基础练习2 (C语言代码)浏览:646 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1341 |
1035 题解浏览:785 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:537 |
震宇大神的杀毒软件 (C语言代码)浏览:1080 |
输出九九乘法表 (C语言代码)浏览:1048 |
上车人数 (C语言代码)浏览:713 |
1415题求解浏览:609 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:513 |