当前位置:   article > 正文

大疆科技2019秋招测试工程师笔试题大概总结(编程题:阿拉伯数字转化成大写中文)_大疆测试工程师笔试题

大疆测试工程师笔试题

大疆科技笔试总结

在8月6号我做了一下大疆科技测试工程师的笔试题,虽然我对测试工程师比较陌生,但是由于大疆科技难度比较高,所以我还是谨慎的选择了测试工程师

下面我来说一下笔试题大概内容

  1. 单选题20个
  2. 多选题10个
  3. 编程题1个

1.单选题:难度不大,但是涉及范围特别广,可能因为我选择的场次比较靠后,所以难度可能会比前面一场难度大一些,但是单选题还是很基础的,不过会涉及大疆公司关于无人机产品,或者关于图像方面的知识。

2.多选题:多选题难度也不是很高,主要会涉及到一些关于算法的知识,但是只要基础扎实,应该不会有问题,数据结构的查找排序和链表绝对是各大公司笔试常有题

3.编程题:这次的编程真的很复杂,只能说中国文字博大精深。我原本以为我有充足的时间可以写完编程,然而并没有,下面我来说一下这个编程题的内容

将阿拉伯数字转换为文字:  例如:999-->九百九十九  ; 10080-->一万零八十

难点:不只是单纯的转换数字成大写汉字,还要将它与百,万,零等表示大小的数字进行结合

笔试过程中我并没有写完,笔试之后我按照之前的思路解决了这个问题,下面是我的思路和代码

通过这张图,可以看出转化过程中我们需要找到一定的规律,除了个位,其它的每一位我们都需要标识它的单位

所以一开始我们就需要建立两个数组来存放数字和单位,

      vector<string> letter;//存放0-9字符

      vector<string> letters; //存放单位字符串

接下来找到规律后就简单了,可以按照规律将循环和判断的思路写出来就可以了

  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <vector>
  4. #include <string>
  5. using namespace std;
  6. string convertNum(int num)
  7. {
  8. vector<string>letter;
  9. letter.push_back("0");
  10. letter.push_back("1");
  11. letter.push_back("2");
  12. letter.push_back("3");
  13. letter.push_back("4");
  14. letter.push_back("5");
  15. letter.push_back("6");
  16. letter.push_back("7");
  17. letter.push_back("8");
  18. letter.push_back("9");
  19. vector<string>letters;
  20. letters.push_back(" ");
  21. letters.push_back("S");
  22. letters.push_back("B");
  23. letters.push_back("Q");
  24. letters.push_back("W");
  25. letters.push_back("S");
  26. letters.push_back("B");
  27. letters.push_back("Q");
  28. letters.push_back("Y");
  29. letters.push_back("S");
  30. string str;
  31. string des;
  32. char tmm[12];
  33. sprintf(tmm, "%d", num);//字符串格式化命令,将格式化数据写入到字符串中
  34. str += tmm;
  35. int leight = str.size();
  36. bool Isbool = false; //用来查看i位字符是否是0,进行标识
  37. for ( int i = 0; i < leight; i++)
  38. {
  39. int digit = str.at(i) - '0';//str.at(pos),返回对pos位置字符的引用
  40. int unit_index = leight - i - 1;
  41. if (i == 0 && digit == 1 && (unit_index == 1 || unit_index == 5 || unit_index == 9))
  42. {
  43. des += letters[unit_index];
  44. }
  45. else if ( digit == 0 )
  46. {
  47. Isbool = true;
  48. if (unit_index == 4 ||unit_index == 8)
  49. {
  50. des += letters[unit_index];
  51. }
  52. }
  53. else
  54. {
  55. if ( Isbool )
  56. {
  57. des.append(letter[0]);
  58. }
  59. des += letter[digit];
  60. des += letters[unit_index];
  61. Isbool = false;
  62. }
  63. }
  64. return des;
  65. }
  66. int main()
  67. {
  68. int num;
  69. cin >> num;
  70. cout << convertNum(num) << endl;
  71. system("pause");
  72. return 0;
  73. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/994054
推荐阅读
相关标签
  

闽ICP备14008679号