问题标题: 酷町堂:3978 信息加密

0
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'){
  • 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
已采纳
黄子扬
黄子扬
初级天翼
初级天翼

别听楼上瞎bb,是你的

int a[10000];

开小了,re就是数组开小了啊

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
我要回答