手机
题目大意
1
2 abc
3 def
4 ghi
5 jkl
6 mno
7 pqrs
8 tuv
9 wxyz
*
0
#
- 按出英文字母就必须要按数字键多下如:
按a就要按2一下.
按b就要按2两下.
(注:没有字母代表没有用
0代表的是空格)
问一串英文小写字符(包括空格)要按多少下.
输入样例
i have a dream
输出样例
23
解题思路
- 其实这道题就是先把每个字母的按数给算出来,再判断即可.
程序如下
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int ans,n;
char x;
const int f[26]={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};
int main()
{
freopen("mobile.in","r",stdin);
freopen("mobile.out","w",stdout);
x=getchar();
while((x>='a'&&x<='z')||x==' ')
{
if(x==' ') ans++;
else ans+=f[x-97];
x=getchar();
}
printf("%d",ans);
return 0;
}