尤利乌斯·凯撒借由加密来保护他的机密资讯。凯撒的加密方式是用一个固定的数字K,来旋转字串中的字母,让他的字串没有办法被敌人给阅读。给定一个字串S,和一个数字K,加密S并输出加密后的结果字串。这个加密方法只能用来加密英文字母,若为符号(如“-”),则不进行加密。

第一行包含一个整数N,范围在1到100之间(包含1和100),表示要加密的字串长度。

第二行包含了要加密的字串S,由ASCII字元组成,不包含空格。

第三行包含一个整数K,范围在0到100之间(包含0和100),做为加密要使用的金钥,数字即为英文字母要旋转的量(距离)。

分别在单独的一行中输出每个测试资料加密之后的字串。

将每个还没加密的英文字母取代为(旋转至)字母排序K个之后字母。英文字母都是区分大小写且可循环的,若在旋转时遇到字母的结尾(z或Z),则从头(a或A)开始接续。例如,z的下一个字母为a,Z的下一个字母为A。

所以范例中:

先将输入的字串转成字元阵列,接着走访每个字元元素,判断字元值落在大写英文还是小写英文的区间。将字元值转成数值(大写字母字元值要减掉A的字元值;小写字母字元值要减掉a的字元值),加上K之后,因为要旋转,确保字元值落在相同大小写字母的区间内,所以还要再去除以26(A到Z或是a到z中字母的数量为26)取余数。最后再加回刚才减掉的字元值,即是加密过后的英文字母。

脸书PO文,快来留言与分享吧!