前言:
野鸡oj不用getchar就不对,我****,md又爆0,我…
题目大意:
一个手机键盘
让你打字,比如: i love ssl
i是4里的第三个,记敲三下,空格算1下,以此类推,得出敲一段字要几下。
思路:
水题,但是getchar我******
C o d e Code Code:
#include<cstdio>
char s;
int f[30],sum;
int main()
{
freopen("mobile.in","r",stdin);
freopen("mobile.out","w",stdout);
s=getchar();
f[1]=f[4]=f[7]=f[10]=f[13]=f[16]=f[20]=f[23]=1;
f[2]=f[5]=f[8]=f[11]=f[14]=f[17]=f[21]=f[24]=2;
f[3]=f[6]=f[9]=f[12]=f[15]=f[18]=f[22]=f[25]=3;
f[19]=f[26]=4;//打表
while((s>='a'&&s<='z')||s==' ')
{
if(s==' ')sum++;
else sum+=f[s-96];
s=getchar();
}
printf("%d",sum);
}
M y My My 0 0 0 p t s pts pts C o d e Code Code:
//MD野鸡oj
#include<cstdio>
#include<iostream>
using namespace std;
int sum,cd;
string s;
int main()
{
freopen("mobile.in","r",stdin);
freopen("mobile.out","w",stdout);
getline(cin,s);
cd=s.size();
for(int i=0;i<=cd-1;i++)
{
if(s[i]==' '||s[i]=='a'||s[i]=='d'||s[i]=='g'||s[i]=='j'||s[i]=='m'||s[i]=='p'||s[i]=='t'||s[i]=='w')sum++;else
if(s[i]=='b'||s[i]=='e'||s[i]=='h'||s[i]=='k'||s[i]=='n'||s[i]=='q'||s[i]=='u'||s[i]=='x')sum+=2;else
if(s[i]=='c'||s[i]=='f'||s[i]=='i'||s[i]=='l'||s[i]=='o'||s[i]=='r'||s[i]=='v'||s[i]=='y')sum+=3;else
if(s[i]=='z'||s[i]=='s')sum+=4;
}//我****亏我打这么整齐。
printf("%d",sum);
}