CCF中学生计算机程序设计入门篇练习2.3.2(NOI1000 加密算法) pascal

———1000. 加密算法 (Standard IO)———

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

————————————————–链接:加密算法 (Standard IO)

题目描述

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

输入

输入一个小写字母。

输出

输出加密后的字符。

样例数据

* 样例数据1*

输入 输出
a z

具体限制

Case/Test No. Time Memory
Case 0 / Test 0 1000ms 262144KB
Case 1 / Test 1 1000ms 262144KB
Case 2 / Test 2 1000ms 262144KB


题目分析:可以用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)))//或者writeln(chr(122-(ord(ch)-97)));;
end.

你可能感兴趣的:(CCF入门篇练习)