• AC日记——加密的病历单 openjudge 1.7 12


    12:加密的病历单

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

    小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。 
    在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。 
    经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子) 
    1.  原文中所有的字符都在字母表中被循环左移了三个位置(dec  -> abz) 
    2.  逆序存储(abcd -> dcba ) 
    3.  大小写反转(abXY -> ABxy) 

    输入
    一个加密的字符串。(长度小于50且只包含大小写字母)
    输出
    输出解密后的字符串。
    样例输入
    GSOOWFASOq
    样例输出
    Trvdizrrvj
    来源
    医学部计算概论2011年期末考试(王志钢)改编

    思路:

      大模拟;

    来,上代码:

    #include<cstdio>
    #include<string>
    #include<iostream>
    #include<algorithm>
    
    using namespace std;
    
    int len;
    
    string word;
    
    void trun()
    {
        int l=0,r=len-1;
        while(r>l)
        {
            swap(word[l],word[r]);
            r--,l++;
        }
    }
    
    inline char char_(char char__)
    {
        if(char__>='A'&&char__<='Z')
        {
            char__+=3;
            if(char__>'Z') char__-=26;
            char__+=32;
        }
        else if(char__>='a'&&char__<='z')
        {
            char__+=3;
            if(char__>'z') char__-=26;
            char__-=32;
        }
        return char__;
    }
    
    int main()
    {
        cin>>word;
        len=word.length();
        trun();
        for(int i=0;i<len;i++) word[i]=char_(word[i]);
        cout<<word<<endl;
        return 0;
    }
  • 相关阅读:
    udp和tcp
    以查询代替临时变量
    memcached内存管理
    设计模式适配器模式
    排序算法
    防止表单重复提交
    php的引用
    按位与,按位异或,按位取反
    git常用操作
    http
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/6104598.html
Copyright © 2020-2023  润新知