题解 | #简单密码#

简单密码

http://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac

简单密码:C语言解法

如果用很多if语句去判断小写字母会显得代码很臃肿,可以尝试找一下规律,字母三个为一组(特殊的可以之后在判断),下一组代表的数字字符加一,那么我们可以除3获得这个除数加上初始字符的值,即可获得小写字母代表的数字字符

#include<stdio.h>
int main(){
    int i = 0;
    char pd[100] = {0};
    while(~scanf("%s\n",&pd)){
        while(pd[i] != '\0'){
            if(pd[i]>='a' && pd[i]<='p'){
                pd[i] = (pd[i]-'a')/3 + '2';
            }else if(pd[i]>='q' && pd[i]<='z'){
                pd[i] = (pd[i]-'q')/3 + '7';
                if(pd[i] > '9') pd[i] -= 1;
            }else if(isupper(pd[i])){
                pd[i] += ('z'-'Z'+1);
                if(pd[i] > 'z') pd[i] = 'a';
            }
            i++;
        }
        printf("%s\n",pd);
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
10-14 13:25
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
13 收藏 评论
分享
牛客网
牛客企业服务