手机
jzoj 1983
题目大意:
在手机输入键盘上有很多键(如下图),每一个位置按一次就是第一个字母,第二次就是第二个字母(空格按0一次),现在问打出一条信息最少按几下?
输入样例
i have a dream
输出样例
23
数据范围
不超过 200 个字符。
解题思路:
先存下每一个字母要按几次,然后直接将输入的字母所需的次数求和
代码:
#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
using namespace std;
const int a[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 ans;
char x;
int main()
{x=getchar();while(x>='a'&&x<='z'||x==' ')//符合的{if (x==' ') ans++;else ans+=a[x-97];//求和x=getchar();}printf("%d",ans);return 0;
}