Problem1355--凯撒加密解密

1355: 凯撒加密解密

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 35  Solved: 27
[Submit] [Status] [Web Board] [Creator:]

Description

编写程序实现凯撒加密和解密算法,输入1表示进行加密,输出加密之后的密文。输入2表示进行解密,输出解密之后的原文。输入为个数据,第一个表示加密还是解密,第二个为待处理的信息,第三个为秘钥。
例如:输入

HOW
3
其中1,表示进行加密,HOW是需要加密的原文,3位加密秘钥
那么输出为:KRZ
如果输入为:
2
KRZ
3
其中2表示进行解密,KRZ是需要解密的密文,3位解密秘钥
那么输出为:HOW


凯撒加密法的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。
例如,当偏移量是左移3的时候(解密时的密钥就是3):
  明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
  密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
  明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
  密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
  凯撒加密法的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替,A=0,B=1,...,Z=25。此时偏移量为n的加密方法即为:
  En(x)=(x+n)mod26{\displaystyle E_{n}(x)=(x+n)\mod 26}
  解密就是:
  Dn(x)=(x−n)mod26{\displaystyle D_{n}(x)=(x-n)\mod 26}

Input


HOW
3

Output

KRZ

Sample Input

2
KRZ
3

Sample Output

HOW

Source/Category

 

[Submit] [Status]