原题链接:螺旋加密
参考代码:
import sys def make(x): res = bin(x) res = res[2:] while len(res) < 5: res = '0' + res return res def make_full(): res = '' for char in s: if char == ' ': res += '00000' else: res += make(ord(char) - ord('A') + 1) return res def ending(): for rows in matrix: for num in rows: print(num, end="") sys.exit(0) row, column, s = input().split() row = int(row) column = int(column) newStr = make_full() matrix = [[0] * column for _ in range(row)] index = 0 left, right, top, bottom = 0, column - 1, 0, row - 1 while True: for i in range(left, right): matrix[top][i], index = newStr[index], index + 1 if index == len(newStr): ending() for i in range(top, bottom + 1): matrix[i][right], index = newStr[index], index + 1 if index == len(newStr): ending() for i in range(right - 1, left, -1): matrix[bottom][i], index = newStr[index], index + 1 if index == len(newStr): ending() for i in range(bottom, top, -1): matrix[i][left], index = newStr[index], index + 1 if index == len(newStr): ending() left += 1 right -= 1 top += 1 bottom -= 1
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复