刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

简单密码
Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文。比如字符A用F来代替。如下是密文和明文中字符的对应关系。 密文 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 明文 V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 你的任务是对给定的密文进行解密得到明文。 你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码。
时间限制:1000
内存限制:65536
输入
一行,给出密文,密文不为空,而且其中的字符数不超过200。
输出
输出一行,即密文对应的明文。
样例输入

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

样例输出

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

使用微信搜索喵呜刷题,轻松应对考试!

答案:

include<bits/stdc++.h>

using namespace std;

int main()

{

char a[201];int l,s=0;

gets(a);l=strlen(a);

for(int i=0;i<l;i++)

{//分类讨论

if(a[i]>=‘A’&&a[i]<=‘E’)

{

a[i]=a[i]+21;

}

else if(a[i]>=‘F’&&a[i]<=‘Z’)

{

a[i]=a[i]-5;

}

}

puts(a);

return 0;

}

/*

通过ASCII码变化大小去寻找密文与明文两者之间的关系

A~E 65~69 +21 V~Z 86~90

F~Z 70~90 -5 A~U 65~85

*/

解析:

【喵呜刷题小喵解析】:该程序首先定义了一个字符数组a,用于存储输入的密文。然后,程序读取输入的密文,并计算其长度。接下来,程序使用一个for循环遍历密文中的每个字符。对于每个字符,程序首先检查它是否在大写字母A到E的范围内。如果是,程序将该字符的ASCII码值增加21,以实现解密。这是因为在密文中,A被替换为V,即V的ASCII码值比A的ASCII码值大21。然后,程序检查字符是否在大写字母F到Z的范围内。如果是,程序将该字符的ASCII码值减去5,以实现解密。这是因为在密文中,F被替换为A,即A的ASCII码值比F的ASCII码值小5。最后,程序输出解密后的明文。注意,这个程序假设输入的密文只包含大写字母,并且密文中包括非字母的字符不需要解码。如果输入的密文包含小写字母或其他非字母字符,程序可能会产生错误的结果。因此,在实际使用中,可能需要添加额外的错误检查和处理代码。
创作类型:
原创

本文链接:简单密码 Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share