话不多说,看题:
输入两个字符串,上面一个是密钥,下面一个是密文。题目要求通过所给的加密方法来得到原文,具体方法如下(已完成中译中):
密文的第k个字母在26字母表中的位置(a = 0,b = 1,c = 2......z = 25)减去密钥的的第k个字母在26字母表中的位置所得结果再换算成字母(a = 0,b = 1,c = 2......z = 25),以此类推。
当相减结果小于0时将结果加26再换算,当k大于密钥长度时则从头开始计算(如 密钥 长3,密文第4个字母将与密钥第1个字母做减法)。
需要注意的是,输出原文时须保持和密文大小写一致。
我先将密钥转为纯大写版和纯小写版,以便后面做ASCII码计算(重要技巧,不会建议学一下)。随后遍历密文,如果该字母为大写则使用纯大写版进行计算,反之使用纯小写版,最后输出明文。
完整AC代码:
补充一个彩蛋:
"CompleteVictory" 意为"完全胜利",而 "Wherethereisawillthereisaway" (Where there is a will, there is a way) 意为 "有志者事竟成"。
在此送给大家这两句话!