#35. 模拟赛D1T4 密码破译小能手
模拟赛D1T4 密码破译小能手
题目背景
Anthony Zhai曾经使用过一种简单的密码。对于明文中的每个字符,将它用它在字母表(A~Z)中的后面第5位对应的字符来代替,这样就得到了密文。比如字符 A
用 F
来代替,字符 Z
用 E
来代替。这样一来,我们就可以得到以下的对应关系:
密文
ABCDEFGHIJKLMNOPQRSTUVWXYZ
明文
VWXYZABCDEFGHIJKLMNOPQRSTU
注意上面第一条是密文,即加密以后的文字;第二条是明文,即加密之前的文字。
题目描述
现在你是一位密码破译小能手。给你一段密文,需要你根据上述规则来破译出密码的明文。
格式
输入
输入一行字符串,代表密文。保证输入的字符串中所有字符都是大写字母。
输出
输出一行字符串,代表明文,即密文对应的加密之前的文字。
样例
CNFTYNFS
XIAOTIAN
题目提示
本题使用ASCII码作为解题的标准思路。
python语言
在Python语言中,通常使用ord
函数来获取一个字符对应的ASCII值;使用chr
函数来将一个ASCII码转换为对应的字母。
例如,字母 A
的ASCII码为65。则以下代码的结果为65。
print(ord('A'))
而ASCII码为70的字符为 F
。则以下代码的结果为 F
。
print(chr(70))
C++语言
在C++语言中则是可以直接通过强制类型转换来实现ASCII码到字符的相互转换。具体来说,使用 int
来将字符转换为ASCII码值,使用 char
来将ASCII码值转换为对应的字符。
cout<<int('A')<<endl; //结果是65
cout<<char(70)<<endl; //结果是F
详细的ASCII码表见这个链接