凯撒密码

rt763831 程序题 共 个子题

图片

图片

【题目描述】

小杨最近在图书馆发现了一本关于密码学的有趣书籍,里面介绍了一种古老的密码——凯撒密码。这种密码很简单:每个字母都按照字母表的顺序向后移动固定位数。比如移动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"

【样例1】

输入:

str1 = ABCDEFGVWXYZ
str2 = DEFGHIJYZABC
str = WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ

输出:

ans = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG

【样例2】

输入:

str1 = ABC
str2 = DEF
str = JRRG

输出:

ans = GOOD

【注意事项】

  1. 变量名的拼写(包括大小写)要和题目完全一致。
  2. 输入变量直接赋值即可,无需使用“询问并等待”积木块。
  3. 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2秒”积木块。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧