转载自:原文地址:http://blog.csdn.net/hackbuteer1/article/details/39253767

第一题(60分):
       按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”

[cpp] view plaincopy
  1. 转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/39253767
  2. #include<iostream>
  3. #include<cstdio>
  4. using namespace std;
  5. void solve(char *str , int n , int len)
  6. {
  7. int i , j , k , quotient , remainder;
  8. quotient = len / n;                //原字符串被分解的个数
  9. remainder = len - n * quotient;    //剩余的字符串的个数
  10. for(i = 0 ; i < len ; i += n)
  11. {
  12. if(len - i < n)
  13. {
  14. k = n - len + i;
  15. for(j = i ; j < len ; ++j)
  16. printf("%c" , str[j]);
  17. for(j = 0 ; j < k ; ++j)
  18. putchar('0');
  19. }
  20. else
  21. {
  22. for(j = i ; j < i + n ; ++j)
  23. printf("%c" , str[j]);
  24. }
  25. putchar(' ');
  26. }
  27. printf("\n");
  28. }
  29. int main(void)
  30. {
  31. int i , m , n , len;
  32. char str[1000];
  33. while(scanf("%d %d", &m , &n) != EOF)
  34. {
  35. for(i = 0 ; i < m ; ++i)
  36. {
  37. scanf("%s" , str);
  38. len = strlen(str);
  39. solve(str , n , len);
  40. }
  41. }
  42. return 0;
  43. }

第一题:拼音转数字
输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述:      拼音        yi  er  san  si  wu  liu  qi  ba  jiu
      阿拉伯数字        1   2   3      4   5    6    7   8   9
输入字符只包含小写字母,所有字符都可以正好匹配

运行时间限制:无限制
内存限制:       无限制
输入:              一行字符串,长度小于1000
输出:              一行字符(数字)串
样例输入:       yiersansi
样例输出:       1234

[cpp] view plaincopy
  1. 转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/39253767
  2. #include<iostream>
  3. #include<cstdio>
  4. using namespace std;
  5. void solve(char *str , int len)
  6. {
  7. int i;
  8. for(i = 0 ; i < len ; )
  9. {
  10. switch(str[i])
  11. {
  12. case 'y':
  13. putchar('1');
  14. i += 2;
  15. break;
  16. case 'e':
  17. putchar('2');
  18. i += 2;
  19. break;
  20. case 's':
  21. if(str[i + 1] == 'a')
  22. {
  23. putchar('3');
  24. i += 3;
  25. }
  26. else
  27. {
  28. putchar('4');
  29. i += 2;
  30. }
  31. break;
  32. case 'w':
  33. putchar('5');
  34. i += 2;
  35. break;
  36. case 'l':
  37. putchar('6');
  38. i += 3;
  39. break;
  40. case 'q':
  41. putchar('7');
  42. i += 2;
  43. break;
  44. case 'b':
  45. putchar('8');
  46. i += 2;
  47. break;
  48. case 'j':
  49. putchar('9');
  50. i += 3;
  51. break;
  52. }
  53. }
  54. printf("\n");
  55. }
  56. int main(void)
  57. {
  58. int len;
  59. char str[1000];
  60. while(scanf("%s" , str) != EOF)
  61. {
  62. len = strlen(str);
  63. solve(str , len);
  64. }
  65. return 0;
  66. }

第二题:去除重复字符并排序
运行时间限制:无限制
内容限制:       无限制
输入:              字符串
输出:              去除重复字符并排序的字符串
样例输入:       aabcdefff
样例输出:       abcdef

[cpp] view plaincopy
  1. 转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/39253767
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<memory>
  5. using namespace std;
  6. void solve(char *str , int len)
  7. {
  8. int i , hash[256];
  9. memset(hash , 0 , sizeof(hash));
  10. for(i = 0 ; i < len ; ++i)
  11. {
  12. if(0 == hash[str[i]])
  13. hash[str[i]] = 1;
  14. }
  15. for(i = 0 ; i < 256 ; ++i)
  16. {
  17. if(0 != hash[i])
  18. putchar(i);
  19. }
  20. printf("\n");
  21. }
  22. int main(void)
  23. {
  24. int len;
  25. char str[1000];
  26. while(scanf("%s" , str) != EOF)
  27. {
  28. len = strlen(str);
  29. solve(str , len);
  30. }
  31. return 0;
  32. }

第三题:等式变换
输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立。
1 2 3 4 5 6 7 8 9 = X
比如:
12-34+5-67+89 = 5
1+23+4-5+6-7-8-9 = 5
请编写程序,统计满足输入整数的所有整数个数。
输入:       正整数,等式右边的数字
输出:       使该等式成立的个数
样例输入:5
样例输出:21

[cpp] view plaincopy
  1. 转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/39253767
  2. #include<iostream>
  3. #include<cstdio>
  4. using namespace std;
  5. int ops[21];
  6. const char sym[3] = {'+' , '-' , ' '};
  7. int result , num;
  8. void dfs(int layer, int currentResult, int lastOp, int lastSum)
  9. {
  10. lastSum *= (layer > 9) ? 100 : 10;
  11. lastSum += layer;
  12. if(layer == 9)
  13. {
  14. currentResult += (lastOp) ? (-1 * lastSum) : lastSum;
  15. if(currentResult == result)
  16. {
  17. ++num;
  18. printf("1");
  19. for(int i = 2 ; i <= 9 ; ++i)
  20. {
  21. if(sym[ops[i-1]] != ' ')
  22. printf(" %c ", sym[ops[i-1]]);
  23. printf("%d", i);
  24. }
  25. printf(" = %d\n" , result);
  26. }
  27. return;
  28. }
  29. ops[layer] = 2;
  30. dfs(layer + 1 , currentResult , lastOp , lastSum);   //Continue
  31. currentResult += (lastOp)? (-1 * lastSum) : lastSum;
  32. ops[layer] = 0;
  33. dfs(layer + 1 , currentResult , 0 , 0);  //Plus
  34. ops[layer] = 1;
  35. dfs(layer + 1 , currentResult , 1 , 0);  //Minus
  36. }
  37. int main(void)
  38. {
  39. while(scanf("%d", &result) != EOF)
  40. {
  41. num = 0;
  42. dfs(1 , 0 , 0 , 0);
  43. printf("%d\n" , num);
  44. }
  45. return 0;
  46. }

2015届华为校园招聘机试题 C语言实现相关推荐

  1. 2015届华为校园招聘机试题

    第一题(60分):        按要求分解字符串,输入两个数M,N:M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0.例如:输入2,8, "abc" ," ...

  2. 2014届华为校园招聘机试题

    华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...

  3. 华为机试题2014 java_2014届华为校园招聘机试题(java实现)

    首先要感谢, 博主Hackbuteer1.提供的关于2014年的华为面试题目.这里运行环境是windows7,eclipse.jdk为1.8.0_45.好了直接上题目.代码,及分析. 一.题目描述(6 ...

  4. 2013届华为校园招聘机试题

    笔试题目(机试,共两题)  题目一:子串分离  题目描述:    通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔.请编写一个程序,自动分离出各个子串,并使用','将其分隔,并且 ...

  5. 2012届华为校园招聘机试题

    1.选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type[i] == 1,表 ...

  6. 2014届华为校园招聘机试题2

    第一题.输入一个正整数,并编码为字符串进行输出 描述: 1.输入一个正整数,并编码为字符串进行输出. 编码规则为:数字0-9分别编码为字符a-j 2.输入肯定是正整数,不用做错误较验 运行时间限制: ...

  7. java校园招聘华为_2015届华为校园招聘机试题 java实现

    第一题(60分): 按要求分解字符串,输入两个数M,N:M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0.例如:输入2,8, "abc" ,"1234567 ...

  8. 2015华为校园招聘机试题一

    2015华为校园招聘机试题<一> 今天无意之间看到了2015年华为校园招聘的机试题,于是,做了下,写出来与大家共享.先看第一题: 题目如下: 按要求分解字符串,输入两个数M,N:M代表输入 ...

  9. 2015华为校园招聘机试题<一>

    题目如下: 按要求分解字符串,输入两个数M,N:M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0. 例如:输入2,8,"abc","123456789&qu ...

最新文章

  1. MyBatis 环境搭建
  2. flex tree 展开树节点
  3. DA14580做主机
  4. Android之Android Studio--Gradle多渠道打包
  5. pucch的uci格式_LTE规范中关于DCI/PDCCH以及UCI/PUCCH写的比较模糊?
  6. jquery 滑动取值
  7. 配置linux danted socks服务
  8. CCNP之IPv6技术-过渡技术(NAT-PT)
  9. 16.看板方法---三类改进机会
  10. 第七十三节,css盒模型
  11. axure 发布 主页_【最新实习发布!】滴滴后台/数据产品经理实习生
  12. IOS开发之——屏幕适配-AutoLayout代码实现(03)
  13. es做mysql二级索引_用Elasticsearch实现HBase二级索引
  14. APP 兼容性测试是什么?8年测试老鸟告诉你
  15. python实现ddos防护_python实现的防DDoS脚本
  16. A*算法和dijkstra算法
  17. 【Hulu独家面试宝典】助你决胜校招技术面
  18. nrf uart for android,nRF Toolbox for BLE
  19. typora配置好smms后还是typora上传图片失败:image load failed。
  20. [GIS原理] 9 数字地形分析DTA、数字地形模型DTM、数字高程模型DEM、数字地表模型DSM、不规则三角网TIN

热门文章

  1. 太空射击unity工程素材文件 飞机大战 飞行射击游戏源码(C#,Unity2019.2.4f1)素材+源码 最新写的,demo简单版本
  2. 学习Redis的正确姿势,有这一篇就够了
  3. bigbrother的补充单节点hdfs搭建好后搭建mapredce
  4. 【教程】超详细通过Shizuku集成XQ_Crystal实现收森林能量
  5. 选购笔记本电脑型号的查询
  6. 软件测试行业中ta表示什么意思,温度冲击测试ta/tc分别代表什么意思
  7. python中的对象是什么意思_python中什么是对象
  8. 配置路由器IP及测试连通性
  9. 015污点修复画笔工具,修复画笔工具,修补工具,内容感知移动工具和红眼工具...
  10. 控制台报错element: <Goods> - did you register the component correctly? For recursive components, make sur