Julius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之前的第n个字母替换(如n=5,消息原文中的每个字母F都分别替换成字母A,n由键盘输入,在密码的末尾),其他字符不变,并且消息原文的所有字母都是大写的。 以下为n=5时的密码对应表。
密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U。
输入样例:
在这里给出一组输入。例如:
RTAZ STB!5
输出样例:
在这里给出相应的输出。例如:
MOVU NOW!
#include<iostream>
#include<string>
using namespace std;
int main(){
//输入字符串
char s[30];
cin.getline(s,20,'\n');
//找出字符串最后的数字
int num=0;
int len=strlen(s);
for(int i=0;i<len;i++){
if((s[i]>='0')&&s[i]<='9'){
num=num*10+s[i]-'0';
s[i]='\0';
}
}
//按要求移位
for(int i=0;i<len;i++){
if(s[i]>='A'&&s[i]<='Z')
s[i]=s[i]-num<int('A')?char(s[i]+26-num):char(s[i]-num);//用到了?:运算符
}
cout<<s;
return 0;
}