1.ZIP
2.1⃣️array[j]=array[j+1]
2⃣️news+=chr(a[i][j]+ord("A"))
3.a[x][y]=(t+k)%26

高考 python 程序关于加密题的问题,能帮我解释下这个答案为啥是这个吗?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 星燎 2022-10-18 12:10关注
1、第一问可以按照题目步骤反着往回推(+k -> -k ; 左移 -> 右移):
- 根据步骤5:密文是 QA#J,对应的矩阵为[[Q,A],[#,J]] -> [[16,0],[-1,9]]
- 根据步骤4:由于加密是左移k位,所以解密就是右移k位。得到矩阵[[0,16],[9,-1]]
- 根据步骤3:由于加密是+k,所以解密就是-k。得到矩阵[[25,15],[8,-1]]
- 根据步骤2、1:按列读取,顺序为 25、8、15、-1,对应字母为 ZIP
2、第二问可以根据示例逻辑推理出答案:
- 第一个空对应的函数,根据代码可以得出yw函数实现的是步骤4的功能(左移),左移的操作实质上就是将后面位置的数字放前面,而填空位置的是左移一位的操作,所以答案就是array[j]=array[j+1]
- 第二个空根据代码可以判断出实现的是将数字转换成对应的字母,所以答案就是news+=chr(a[i][j]+ord("A"))
3、第三问根据代码可以看出是在实现步骤3:
- 对于步骤3中的要求,+k后超过26的重新从0开始。所以答案需要对26取余,即a[x][y] = (t+k)%26
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报