题目链接:

​http://poj.org/problem?id=3749​


题目大意:

凯撒大帝的加密方法是:将原文的每个字母分别用该字母后边的第5个字母替换。现在给你加密后

的信息,问信息原文是什么。


思路:

将加密消息的ASCII码值减去5,低于'A'字符的,ASCII码再加上26。直接输出即可。


AC代码:


#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

char s[300];

int main()
{
while(gets(s))
{
if(strcmp("ENDOFINPUT",s) == 0)
break;
else if(strcmp("START",s) == 0)
{
gets(s);
int len = strlen(s);
for(int i = 0; i < len; ++i)
{
if(s[i]>='A' && s[i]<='Z')
{
s[i] -= 5;
if(s[i] < 'A')
s[i] += 26;
}
}
printf("%s\n",s);
gets(s);
}
}

return 0;
}