noip 手机

来源:百度知道 编辑:UC知道 时间:2024/09/27 17:34:15
手机(MOBILE)
【源程序名】mobile.(pas/c/cpp)
【输入文件】mobile.in
【输出文件】mobile.out
【问题描述】
手机的键盘是这样的:
1 2 abc 3 def
4 ghi 5 jkl 6 mno
7 pqrs 8 tuv 9 wxyz
* 0 #
要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
【输入数据】
一行一个句子,只包含英文小写字母和空格,且不超过200个字符。
【输出数据】
一行一个整数,表示按键盘的总次数。
【样例】
mobile.in
i have a dream

mobile.out
23
算法描述:可以利用搜索,也可以利用字符串的pos函数。

program sj;
var
i1,n1,k1:longint;
a1:array[1..255]of char;
begin
n1:=0;
while not(eoln) do
begin
inc(n1);
read(a1[n1]);
end;
for i1:=1 to n1 do
case a1[i1] of
'a','d','g','j','m','p','t','w',' ':k1:=k1+1;
'b','e','h','k','n','q','u','x':k1:=k1+2;
'c','f','i','l','o','r','v','y':k1:=k1+3;
's','z':k1:=k1+4;
end;
k1:=k1+1;
write(k1-1);
readln;
readln;
end.