测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A20718. 凯撒密码

填空题 较难

题目描述

凯撒密码

题目描述

小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码——凯撒密码。这种密码很简单:每个字母都按照字母表的顺序往后移动固定位数。比如移动 3 位,A 就变成 D,B 变成 E,C 变成 F……到了 Z 之后又回到 A,Z 就变成了 C。

小杨现在得到了三行重要的信息:

1.第一行:已知的原始消息(明文)

2.第二行:已知的加密后的消息(密文),它是用凯撒密码对第一行加密得到的

3.第三行:需要解密的密文,它和前面使用了相同的移动位数

默认小猫角色和白色背景,请你帮助小杨,先根据前两行计算出字母移动了多少位,然后用这个规律破解第三行的密文,找到原始消息并把结果存储在变量 ans 中。

输入描述

新建变量“str1”,表示已知的明文(全大写字母)

新建变量“str2”,表示对应的密文(全大写字母)

新建变量“str”,表示需要破解的密文(全大写字母)。

如下图所示:

输出描述

新建变量“ans”,用于存储最终的结果,表示破解后的明文。

如下图所示:

从前两行可以看出:

  • A → D(向后移动 3 位)
  • B → E(向后移动 3 位)
  • 以此类推

所以移动位数是 3。对第三行密文,我们把每个字母向前移动 3 位:

  • W 向前移动 3 位变成 T
  • K 向前移动 3 位变成 H
  • 以此类推

最终得到:"THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG"

输入样例

str1 = ABCDEFGVWXYZ

str2 = DEFGHIJYZABC

str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ

输出样例

ans  = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG

输入样例

str1 = ABC

str2 = DEF

str = JRRG

输出样例

ans = GOOD

注意事项:

1、 变量名的拼写(包括大小写)要和题目完全一致。

2、输入变量直接赋值即可,无需使用“询问并等待”积木块。

3、输出结果存放在对应变量中即可,无需使用“说…”或“说…,2 秒”积木块。

参考答案

见解析

答案解析

上一题 下一题