求助
  • 板块P1765 手机
  • 楼主qwq___qaq
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/8/28 23:54
  • 上次更新2023/11/4 08:40:54
查看原帖
求助
556362
qwq___qaq楼主2021/8/28 23:54

关于这两份代码,看起来似乎一模一样,就改了一个if,结果一个爆零,一个 ACAC。思路大概就是用数组把每一个将需要用的元素所需按键次数存起来,然后空格特判。

爆零:

#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;
}

ACAC

#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;
}
2021/8/28 23:54
加载中...