美文网首页
2017蓝桥杯javaC组模拟题6

2017蓝桥杯javaC组模拟题6

作者: LinkedIn | 来源:发表于2017-03-23 22:47 被阅读0次

标题:加密解密

Playfair密码由英国人发明,它使用方便而且可以让频度分析法失效,直到一战中才被破译。
其一变种方法如下:首先选择一个密钥单词(称为pair)(剔除重复字母,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:

1.首先按行填入密钥串,重复的字母忽略之。
2.紧接其后,按字母序按行填入不在密钥串中的字母。
3.由于方阵中只有25个位置,最后剩下的那个字母则不需填入。
如果密钥为lanqiao,则该方阵如下:
l a n q i
o b c d e
f g h j k
m p r s t
u v w x y

在加密一对字母时,如da,在方阵中找到以这两个字母为顶点的矩形。
这对字母的加密字母为该矩形的另一对顶点,如本例中为bq。

请设计程序,使用上述方法对输入串进行加密,并输出加密后的串。

另有细则如下:
1、一对一对取字母,如果最后只剩下一个字母,则不变换,直接放入加密串中;
2、如果一对字母中的两个字母相同,则不变换,直接放入加密串中;
3、如果一对字母中有一个字母不在矩阵中,则不变换,直接放入加密串中;
4、如果字母对出现在方阵中的同一行或同一列,如fk或ky,则只需简单对调这两个字母,即变换为kf或yk;
5、如果在正方形中能够找到以字母对为顶点的矩形,假如字母对为da,则该矩形的另一对顶点字母中,与d同行的字母应在前面,在上例中应是bq;同样若待变换的字母对为pj,则变换后的字母对应为sg;
6、本程序中输入串均为小写字母,并不含标点、空格或其它字符。

解密方法与加密相同,即对加密后的字符串再加密,将得到原始串。

输入格式如下:
输入为两行字符串,
第一行为密钥单词(长度小于等于25),
第二行为待加密字符串(长度小于等于50),
两行字符串末尾都有一个回车换行符,
并且,两行字符串均为小写字母,不含其它字符。

输出为一行,表示加密后的字符串。

例如:
输入:
lanqiao
dasai

程序应该输出:
bqpqi

再例如:
输入:
dasai
lanqiao

程序应该输出:
ksltaio
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms


相关文章

  • 2017蓝桥杯javaC组模拟题6

    标题:加密解密 1.首先按行填入密钥串,重复的字母忽略之。2.紧接其后,按字母序按行填入不在密钥串中的字母。3.由...

  • 2017蓝桥杯javaC组模拟题3

    题目:猜算式 你一定还记得小学学习过的乘法计算过程,比如: 273x 15 1365273 4095 请你观察...

  • 2017蓝桥杯javaC组模拟题5

    标题:报数游戏 有 n (1

  • 2017蓝桥杯javaC组模拟题4

    标题:数字段计数 在一个给定的字符串中,既包含数字也包含字母。我们不关心具体的数字、字母都是什么。我们只是想知道,...

  • 2017蓝桥杯javaC组模拟题1

    1题: 请统计出下面的数据块中有多少个1? 10111000100110010111110111000101100...

  • 2017蓝桥杯javaC组模拟题2

    标题:奇怪的捐赠 麻烦的是,他有个很奇怪的要求: 100万元必须被正好分成若干份(不能剩余)。每份必须是7的若干次...

  • 2017蓝桥杯javaC组模拟题7

    题目:滑动解锁 滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过...

  • 双通道方波频率检测与倍频输出

    准备蓝桥杯嵌入式中,昨天与今天我写了写蓝桥杯第六届模拟题双通道方波频率检测与倍频输出(密码是5p0v),这道题目难...

  • 蓝桥杯真题题解收藏

    收藏一些在网上发现的,觉得写的不错的蓝桥杯真题题解内容,给学生练习备战蓝桥杯时所用。2020蓝桥杯省赛第二场C组_...

  • 记录蓝桥杯学习之路20171201

    这段时间莫名奇妙觉得自己特别颓废,决定开始要学习了,距离2018年5月末蓝桥杯决赛还有6个多月吧 目标c++A组国...

网友评论

      本文标题:2017蓝桥杯javaC组模拟题6

      本文链接:https://www.haomeiwen.com/subject/dgtwnttx.html