题目大意:
一般的手机的键盘是这样的:
1 2abc 3def
4ghi 5jkl 6mno
7pqrs 8tuv 9wxyz
要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x。 0 键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
输入
输入文件只包含一行,表示一个句子,句子中只包含英文小写字母和空格,且不超过200 个字符。
输出
一行一个整数,表示按键盘的总次数。
样例输入
i have a dream
样例输出
23
数据范围限制
【数据范围】
不超过 200 个字符。
解题思路:
暴力模拟————
源程序:
#include <cstdio>
#include <cstring>
using namespace std;
char c;
int ans,i,n[27]={0,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};//a,b,c……x,y,z等需要按得次数。
int main()
{
/*freopen("mobile.in","r",stdin);
freopen("mobile.out","w",stdout);*/
while ((c=getchar())!='\n') //输入
{
if (c==' ') ans++;//空格+1
else ans+=n[c-96]; //只有小写字母
}
printf("%d",ans);//输出
return 0;
}