前言
为什么想到会做这个环形加密问题的解析呢?那是因为最近在学校作业——PTA平台上看到了这题,我认为这题还是很有价值的,它用到了以下的知识点:选择结构(if语句的运用)、ASCII值与其字母字符的对应、整型和字符类型的关系。
一、题目论述


题目的大致情况基本就是如上两张图片所呈现的样子。
二、题目详解
1.解题过程
解题过程中的
作者最开始看到这题key值分正负时,就以普遍理性而言,肯定是先去把它正负先分了,然后发现答案错误。嘶。。。。。这就很难受了,后来仔细思考了一下,发现分正负的做法其实并没有必要,我们只需在结果输出的阶段,对结果做+26和-26的操作,就能达到一样的效果。
以下是整体的分析:
首先,我们看到这道题想实现的加密效果就是——输入一个字母,再输入一个数字(这个数字有正负,正的话,就往顺时针走这个数字个单位,反之就往逆时针)
值得注意的是,密钥数字是可以大于26的,但问题是字母表一共就26个字母。这时,我们深入思考一下,便会发现如果大于26,那就是字母在转圈,这就成了一个周期性的东西,因此,我们只需要 n%26(n是密钥),便能知道它在一圈中前进的单位数。
其中,题目所给的全是小写字母,而我们知道小写字母的ASCII值的范围是(97<=n<=122),所以,我们可以直接分为三种情况(小于97、97到122之间、大于122),对其用if语句判断。
最后,在选择判断后对其进行输出。在小于97和大于122时,就是密钥大于26的情况,要对它进行+-26的操作。
以上就是整个解题过程。
2.正确答案
代码如下(示例):

总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了基础环形加密问题的基本方法。如果读者有更加简便的方法,欢迎大家一起讨论。
172万+

被折叠的 条评论
为什么被折叠?



