CCF NOI1000 加密算法
来源:互联网 发布:c语言小游戏源代码 编辑:程序博客网 时间:2024/06/05 02:32
问题链接: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;}
0 0
- CCF NOI1000 加密算法
- CCF中学生计算机程序设计入门篇练习2.3.2(NOI1000 加密算法) pascal
- ccf
- CCF
- ccf
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法
- 加密算法:
- 加密算法
- imbalanced data处理的方法
- gradle 之compileSdkVersion,buildToolsVersion等
- pat乙级1031
- java虚拟机中的常用jdk命令
- Winfrom操作EXCEL
- CCF NOI1000 加密算法
- Windows 使用 vsftp 访问 Linux(树莓派) 及配置
- 2017/3/31 面试感受
- poj2342——Anniversary party(树形dp)
- windbg !htrace 学习总结
- c/c++ memset函数的陷阱
- web杂谈
- just a hook hdu1698+zoj1610
- 【Linux】Linux下的黏滞位说明