zoukankan      html  css  js  c++  java
  • NOIP2010-普及组复赛模拟试题-第一题-手机

    题目背景 Background

    现在手机使用越来越广泛了
     题目描述 Description
    一般的手机的键盘是这样的:
     
    要按出英文字母就必须要按数字键多下。例如要按出 x 就得按 9 两下,第一下会出 w,
    而第二下会把 w 变成 x。0 键按一下会出一个空格。
    你的任务是读取若干句只包含英文小写字母和空格的句子, 求出要在手机上打出这个句
    子至少需要按多少下键盘。
     输入输出格式 Input/output
    输入格式:
    一行一个句子,只包含英文小写字母和空格,且不超过 200 个字符。
    输出格式:
    一行一个整数,表示按键盘的总次数。
     输入输出样例 Sample input/output
    样例测试点#1

    输入样例:

    i have a dream

    输出样例:

    23

    思路:这题较为简单,可以先打表,这个比较快捷(记录每个按键所要按的次数),每次只输入一个字符,找到在表里面的答案加上计数器即可。

    注意:输入数据有若干句,一行一句,所以要用文件读入。

    代码如下:

     1 #include <stdio.h>
     2 #include <string.h>
     3 int ans1[30]={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,1};//打表,统计每个按键所需的次数 
     4 int phone(char a[])
     5 {
     6     int ans=0,i;
     7     for(i=0;i<strlen(a);i++)  
     8     {
     9         if(a[i]!=' ')//字母 
    10         {
    11             ans+=ans1[a[i]-97];//计数器加上表内的数字 
    12         }
    13         else     //空格,计数器++ 
    14         {
    15             ans+=1;
    16         }
    17     }    
    18     return ans;
    19 }
    20 int main()
    21 {     
    22     char a[201];    
    23     gets(a);
    24     while(a[strlen(a)-1]!=EOF)//如果还没到文件结尾,传入函数 
    25     {
    26         printf("%d
    ",phone(a));
    27         gets(a);
    28     }            
    29     return 0;
    30 }
  • 相关阅读:
    [PY3]——heap模块 和 堆排序
    [PY3]——求TopN/BtmN 和 排序问题的解决
    [转载+补充][PY3]——环境配置(2)——windows下安装pycharm并连接Linux的python环境
    [转载+补充]windows下SVN客户端的安装
    [Visual studio code 常见问题解决] ——中文乱码、
    Smrty模版总结(转)
    cms内容模型标签
    phpcms图文总结(转)
    phpcms总结(转)
    PHP总结
  • 原文地址:https://www.cnblogs.com/geek-007/p/4733219.html
Copyright © 2011-2022 走看看