CCF入门篇练习 – NOI1000 加密算法 (pascal)

发布于 2017-11-20  512 次阅读


链接:加密算法 (Standard IO)

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

题目

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

输入

输入一个小写字母。

输出

输出加密后的字符。

样例数据

 

输入输出
az

具体限制

 

Case/Test No.TimeMemory
Case 0 / Test 01000ms262144KB
Case 1 / Test 11000ms262144KB
Case 2 / Test 21000ms262144KB

题目分析

可以用Ascii码做。ord将字符转化成Ascii码,chr是将Ascii码转换成对应的字符。97为 ‘a’ 的Ascii编码,ord(ch)-96就是小写字母中正数第几个字符,123为’z’的Ascii编码+1,为什么要+1,你可以试一试,因为小写字母中a的位置+z的位置=1+26=27,在小写字母的位置+Ascii编码中也要+1,123-1(‘a’)=122(‘z’),1是a在小写字母中的位置,122是z在Ascii码中的位置。123-2(‘b’)=121(‘y’),123-26(‘z’)=97(‘a’),这样就能拿满分了。(也可以用chr(122-(ord(ch)-97)),答案相同)。

题目要点

Ascii码转换

代码实现

var
  ch:char;
begin
  readln(ch);
  writeln(chr(123-(ord(ch)-96)));
end.

在迷失中寻找自我