【洛谷】P1765手机问题——C语言-创新互联
一般的手机的键盘是这样的:
创新互联是一家专业提供察哈尔右翼前企业网站建设,专注与成都网站设计、成都网站制作、H5开发、小程序制作等业务。10年已为察哈尔右翼前众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。要按出英文字母就必须要按数字键多下。例如要按出x
就得按 9 两下,第一下会出w
,而第二下会 把w
变成x
。0 键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
我们用“暴力枚举法”来解决。
代码如下:
#includeint main()
{
char str[201];
int i,n=0;
gets(str);
for(i=0;str[i]!='\0';i++) //当检测到字符串结尾的‘\0’时,循环结束
{
if(str[i]==97||str[i]==100||str[i]==103||str[i]==106||str[i]==109||str[i]==112||str[i]==116||str[i]==119||str[i]==' ')
n+=1;
else if(str[i]==98||str[i]==101||str[i]==104||str[i]==107||str[i]==110||str[i]==113||str[i]==117||str[i]==120)
n+=2;
else if(str[i]==99||str[i]==102||str[i]==105||str[i]==108||str[i]==111||str[i]==114||str[i]==118||str[i]==121)
n+=3;
else if(str[i]==115||str[i]==122)
n+=4;
}
printf("%d",n);
return 0;
}
通过小写字母和空格对应的数字来进行枚举,分别找到在手机按键里按一次出现的字母,接着找按两次出现的字母,以此类推,便可以完成枚举。
运行结果如下:
i have a dream
23
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站题目:【洛谷】P1765手机问题——C语言-创新互联
转载源于:http://azwzsj.com/article/ccgicd.html