OJ:简单密码
示例1
输入:
START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT
输出:
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
注意对START、END 及 ENDOFINPUT 的处理即可,其余部分与密码翻译一题类似。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
string str;
while(getline(cin,str)){ //START ENDOFINPUT
if(str=="ENDOFINPUT") break;
getline(cin,str);
for(int i=0;i<str.size();i++){
if(str[i]>='F' && str[i]<='Z')
str[i]-=5;
else if(str[i]<='E' && str[i]>='A')
str[i]+=21;
/*
if(str[i]>='A' && str[i]<='Z')
str[i]=(str[i]-'A'-5+26)%26+'A';
*/
}
cout<<str<<endl;
getline(cin,str); //END
}
}