解题思路:
注意事项:
参考代码:
d = input().split()
if(len(d)>3):
for i in range(3,len(d)):
d[2] += ' '+d[i]
if(len(d)<3):
d.append(' ')
r,c,ts = int(d[0]),int(d[1]),d[2]
m = [['0']*c for _ in range(r)]
#转化字符位5位二进制
def schr(tc):
digit = 0
if tc != ' ':
digit = ord(tc) - 64
t = ['0','0','0','0','0']
k = []
while digit > 0:
k += str(digit%2)
digit //= 2
t[5-len(k):5] = k[::-1]
return t
s = ''
for i in ts:
s += ''.join(schr(i))
if len(s) < r*c:
for i in range(len(s),r*c):
s += '0'
up ,down,left,right = 0,r-1,0,c-1
si = 0
while up<=down and left<=right and si < len(s):
#从左到右
for i in range(left,right+1):
if si < len(s):
m[up][i] = s[si]
si += 1
up += 1
#从上到下
for i in range(up,down+1):
if si < len(s):
m[i][right] = s[si]
si += 1
right -= 1
#从右到左
for i in range(left,right+1)[::-1]:
if si < len(s):
m[down][i] = s[si]
si += 1
down -= 1
#从下到上
for i in range(up,down+1)[::-1]:
if si < len(s):
m[i][left] = s[si]
si += 1
left += 1
for i in range(r):
for j in range(c):
print(m[i][j],end='')
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复