0
已解决
胡景波
中级光能
中级光能
3978 信息加密经验值:1200
题目描述 Description
为了保护个人隐私,我们通常会对自己的信息进行加密,假设信息是一个只包含数字(1-9)、字母和空格的字符串,那么现在给出如下的加密形式:
1.对于其中的大写字母变为小写字母,如A-a;
2.对于其中的小写字母转换为其后的第三个字母,如a-d,x-a;
3.对于其中的每位数字,如果该数字是偶数,那么除以2,直到变为奇数为止,否则不改变该数字,如45-15。
现在给出一条信息,请你给出加密后的字符串。
输入描述 Input Description
第一行,一个字符串,为要加密的信息(仅包含空格、字母和数字1-9)
输出描述 Output Description
一行,加密后的字符串
样例输入 Sample Input
Aa x45
样例输出 Sample Output
ad a15
80 Runtime Error
- #include<iostream>
- #include<cstring>
- using namespace std;
- int main(){
- string s;
- int a[10000];
- getline(cin,s);
- for(int i=0;i<s.size();i++){
- if(s[i]>='A'&&s[i]<='Z'){
- s[i]+=32;
- cout<<s[i];
- }
- else if(s[i]>='a'&&s[i]<='z'){
- if(s[i]=='x'){
- s[i]='a';
- }
- else if(s[i]=='y'){
- if(s[i]=='x'){
- s[i]='b';
- }
- else if(s[i]=='z'){
- s[i]='c';
- }
- else{
- s[i]+=3;
- }
- cout<<s[i];
- }
- else if(s[i]>='1'&&s[i]<='9'){
- s[i]-='0';
- a[i]=s[i];
- while(a[i]%2==0){
- a[i]/=2;
- if(a[i]==0){
- break;
- }
- }
- cout<<a[i];
- }
- else if(s[i]==' '){
- cout<<" ";
- }
- }
- return 0;
- }
0
0
蔡乐毅
高级光能
高级光能
- if(s>='A'&&s<='Z') return s+32;
- else if(s>='a'&&s<'x') return s+3;
- else if(s>='x'&&s<='z') return s+3-26;
- else if(s>='2'&&s<='8'){
- n=s-'0';
- while(n%2==0){
- n/=2;
- return n+'0';
- }
- }
- return 0
- 用函数更快
0