手机的键盘是这样的:
1 2abc 3def
4ghi 5jkl 6mno
7pqrs 8tuv 9wxyz
* 0 #
要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
1 2abc 3def
4ghi 5jkl 6mno
7pqrs 8tuv 9wxyz
* 0 #
要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
Description
一行。一个句子,只包含英文小写字母和空格,且不超过200个字符。
Input
一行。一个整数,表示按键盘的总次数。
Output
1
|
i have a dream
|
Sample Input
1
|
23
|
#include<stdio.h>
#include<string.h>
int main()
{
char str[205];
scanf("%[^\n]s", str);
int len = strlen(str);
int sum = 0;
for (int i = 0;i < len;i++)
{
if (str[i] == ' ')
{
sum++;
}
else
{
if (str[i] >= 'a'&&str[i] <= 'o')
{
int t = str[i] - 'a' + 1;
if (t % 3 == 1)
{
sum++;
}
else if (t % 3 == 2)
sum = sum + 2;
else
sum = sum + 3;
}
if (str[i] >= 'p'&&str[i] <= 's')
{
sum = sum + str[i] - 'p' + 1;
}
else if (str[i] >= 't'&&str[i] <= 'v')
{
sum = sum + str[i] - 't' + 1;
}
else if (str[i] >= 'w'&&str[i] <= 'z')
{
sum = sum + str[i] - 'w' + 1;
}
}
}
printf("%d\n", sum);
return 0;
}