Caesar Cipher
Posted lcbwwy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caesar Cipher相关的知识,希望对你有一定的参考价值。
题意:
- 凯撒密码加密,输出对应的密文的明文
思路:
- 加密是将明文向右移位,那么解密就是将密文向左移位。
注意:A向左一位是Z
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char s[55],str[55];
int n,m;
int main( )
{
int t,q=0;
scanf("%d",&t);
while(t--)
{
q++;
scanf("%d%d",&n,&m);
getchar( );
scanf("%s",s);
getchar( );
scanf("%s",str);
int k=str[0]-s[0];//获得密钥
getchar( );
scanf("%s",str);
cout<<"Case #"<<q<<": ";
for(int i=0;i<m;i++)
{
int cnt=(str[i]-‘A‘-k+26)%26+‘A‘;//将字符按0~25移位,移位后加上字符‘A‘
cout<<(char)cnt;
}
cout<<endl;
}
return 0;
}
以上是关于Caesar Cipher的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces gym102222 C. Caesar Cipher 签到
G - Caesar Cipher Gym - 102798G