移位密码是最简单的一类代替密码,具体算法就是将字母表的字母右移k个位置(k<26),并对字母表长度作模运算。
现给你一串密文,全部由大写字母组成。已知加密过程为:将每个字母按照字母表的顺序右移k位。
加密函数:E(m)=(m+k)%q.
请破译出明文!
JMPWFZPV 1
ILOVEYOU
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char s[60];
int k,lens,i,a[60];
while(scanf("%s%d",&s,&k)!=EOF)
{
lens=strlen(s);
for(i=0;i<lens;i++)
{
a[i]=s[i]-'A';
s[i]='A'+(a[i]-k+26)%26;
}
cout<<s<<endl;
}
return 0;
}
原文:http://blog.csdn.net/zuguodexiaoguoabc/article/details/44837913