#35. 模拟赛D1T4 密码破译小能手

模拟赛D1T4 密码破译小能手

题目背景

Anthony Zhai曾经使用过一种简单的密码。对于明文中的每个字符,将它用它在字母表(A~Z)中的后面第5位对应的字符来代替,这样就得到了密文。比如字符 AF 来代替,字符 ZE 来代替。这样一来,我们就可以得到以下的对应关系:

密文 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码表见这个链接