AcWing 3475. 简单密码
题目描述
代码实现
思路:首先将字母映射到0-25,解密的过程就是每一个字母减5然后对26取模,需要注意的是,在c++中,负数取模还是负数,所有要再加上26,不影响取模结果。
也就是代码中的这一行cout<<(char)((c-'A'-5+26)%26+'A');
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
string str;
while(getline(cin,str))
{
if(str=="ENDOFINPUT") break;
getline(cin,str);
for(char c:str)
{
if(isalpha(c))
cout<<(char)((c-'A'+21)%26+'A');
else
cout<<c;
}
cout<<endl;
getline(cin,str);
}
return 0;
}