zoukankan      html  css  js  c++  java
  • CCF NOI1000 加密算法

    问题链接CCF NOI1000 加密算法




    时间限制: 1000 ms  空间限制: 262144 KB

    题目描述

      神龙数码公司设计了一个加密算法:用a代替z,用b代替y,用c代替x,......,用z代替a。现要求输入一个小写字母,对其进行加密输出。

    输入

      输入一个小写字母。

    输出

      输出加密后的字符。

    样例输入

    a

    样例输出

    z

    数据范围限制




    问题分析

      这是一个编码问题,也是有关输入输出的问题。

    程序说明

      有两种解法,一种是计算法,另外一种是查表法。

      因为字符编码采用ASCII码,a-z、A-Z和0-9是顺序连续编码的,计算上十分方便。

      由于本题的编码规则(加密规则)是有规律的,所以采用查表法不如计算法简洁。但是,如果编码没有规律,则查表法的优点是显而易见的。

    要点详解

    • 函数getchar()和函数putchar()是标准输入输出函数,其原型定义在stdio.h中。
    • 更加简洁的写法:putchar('a' + 'z' - (c = getchar()));
    • 另外一个更加简洁的写法:putchar(encipher[(c = getchar()) - 'a']);
    • 在C语言中,“=”是运算符,从语义上看是赋值,而从语法上看是运算符,可以像算术运算符一样用在表达式中。
    • 在C语言中数组下标是从0开始的。



    100分通过的C语言程序之一:

    #include <stdio.h>
    
    int main(void)
    {
        char c;
    
        c = getchar();
    
        putchar('a' + 'z' - c);
    
        return 0;
    }


    100分通过的C语言程序

    #include <stdio.h>
    
    int main(void)
    {
        char c;
    
        putchar('a' + 'z' - (c = getchar()));
    
        return 0;
    }


    100分通过的C语言程序之二:

    #include <stdio.h>
    
    int main(void)
    {
        char encipher[] = "zyxwvutsrqponmlkjihgfedcba";
        char c;
    
        c = getchar();
    
        putchar(encipher[c - 'a']);
    
        return 0;
    }

    100分通过的C语言程序

    #include <stdio.h>
    
    int main(void)
    {
        char encipher[] = "zyxwvutsrqponmlkjihgfedcba";
        char c;
    
        putchar(encipher[(c = getchar()) - 'a']);
    
        return 0;
    }
    





  • 相关阅读:
    《WCF全面解析》-上册 1-3章 读书笔记
    git上传本地Intellij idea 项目到码云的git仓库中
    Node.js安装及环境配置之Windows篇
    让IntelliJ IDEA支持创建*.vue文件及打开*.vue文件
    maven命令mvn package指定jar包名称
    spring 时间格式化注解@DateTimeFormat和 @JsonFormat
    事务及事务隔离级别
    @RequestBody的使用
    接口jdk1.8与jdk1.9新特性
    Spring AOP无法拦截内部方法调用-- expose-proxy="true"用法
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563988.html
Copyright © 2011-2022 走看看