关于这两份代码,看起来似乎一模一样,就改了一个if
,结果一个爆零,一个 AC。思路大概就是用数组把每一个将需要用的元素所需按键次数存起来,然后空格特判。
爆零:
#include<bits/stdc++.h>
using namespace std;
string a;
int s,k,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(){
getline(cin,a);
k=a.length();
for(int i=0;i<k;i++)
if(a[i]>='a'&&a[i]<='z')
s+=f[a[i]-'a'];
else
s++;
printf("%d\n",s);
return 0;
}
AC:
#include<bits/stdc++.h>
using namespace std;
string a;
int s,k,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(){
getline(cin,a);
k=a.length();
for(int i=0;i<k;i++){
if(a[i]>='a'&&a[i]<='z')
s+=f[a[i]-'a'];
else if(a[i]==' ')
s++;
}
printf("%d",s);
return 0;
}