zoukankan      html  css  js  c++  java
  • 2014华为成都实习招聘软件类机试回忆录

         前两天收到华为软件类实习招聘机试的通知匆匆准备了两天,今天上午上了半节曾哥的课就坐校车赶去清水河参加华为的机试了╮(╯▽╰)╭可能因为是实习招聘,题目比网上流传的要简单点,今年貌似新采取了OJ的形式来机试,但是不像OJ那么严格要限定时间和内存。有三道题,第一题60分,第二题100分,第三题160分,下面是根据我回忆写出的题目和代码:

    第一题:

          输入uiMin,uiMax, uiStep,输入的三个变量以逗号间隔开来,变量的类型均为unsigned int,其中uiMin <= uiMax,求表达式 x * (x + 2) +1在区间[uiMax,uiMin]中以uiStep为步长的所有和,要求必须包括uiMax和uiMin。

    样例输入:1,3,1

    样例输出:29

    思路:这道题比较简单吧,有两个要注意的点就是:输入用逗号来间隔开,我用cin.get()来解决这个问题;还有就是要考虑最后一个x超过uiMax的时候要记得把uiMax算上来。下面是我写的代码,典型的用C++语法来写C╮(╯▽╰)╭求勿拍。。

     1 #include<iostream>
     2 #include<cstdlib>
     3 #include<cstring>
     4 #include<windows.h>
     5 
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     unsigned int uiMin, uiMax, uiStep, ans, x;
    11     cin >> uiMin;
    12     cin.get();
    13     cin >> uiMax;
    14     cin.get();
    15     cin >> uiStep;
    16     ans = uiMin * (uiMin + 2) + 1;
    17     x = uiMin + uiStep;
    18     while (x < uiMax)
    19     {
    20         ans = ans + x * (x + 2) + 1;
    21         x = x + uiStep;
    22     }
    23     if (x == uiMax) ans = ans + x * (x + 2) + 1;
    24     else ans = ans + uiMax * (uiMax + 2) + 1;
    25     cout << ans << endl;
    26     system("pause");
    27     return 0;
    28 }

    第二题具体的题目忘了。。就是解析地址,输入一组字符串,字符串是一个数据帧,对帧内不同类型的数据进行解析,数据帧内的字符是16进制的,要求解析为10进制,分别输出T1,T2,T3,T4(忘了有多少组了==),每组所占数据帧多少个字节是已知的,好像前三组是占一个字节,后两组占两个字节,例如

    输入:00010a01021030,

    输出:

    T1=0

    T2=1

    T3=10

    T4=258

    T5= 4144

    (大概是这样吧。。忘了有多少组了。。输出的名称也不是Tn。。)

    这道题的思路也挺容易想出的就是把字符串放到一个数组里,然后用sscanf()函数打印到另一个数组里面然后就可以处理了。。当时做完第一题后感觉剩下时间只能做一题了,因为第三题分比较高做了第三题,第二题就没时间做了。。回来具体题目也忘了,所以就懒得写了。。

    第三题:矩阵构造

     输入一个整数n,构造一个n*n矩阵的上三角矩阵,对该矩阵从1开始顺时针递增填数。,输出格式为左对齐4位。

    样例输入:

    5

    样例输出:

    1   2   3   4   5

    12 13 14 6

    11 15 7

    10 8

    9

    思路:这道题就是刘汝佳白书上那道蛇形填数的例题的变形,构造一个二维数组,然后需要判断边界,具体请参考白书。。一下是我的代码:

      1 #include<iostream>

     2 #include<cstdlib>
     3 #include<cstring>
     4 #include<windows.h>
     5 
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     int a[50][50];
    11     int n, i, j, tot;
    12     cin >> n;
    13     memset(a, 0sizeof(a));
    14     tot = a[i = 0][j = 0] = 1;
    15     while(tot < ((n * n) / 2 + 2) )
    16     {
    17          while((j + 1) < n && a[i][j + 1] == 0) a[i][++j] = ++tot;
    18          while((i + 1) < n && a[i + 1][j - 1] == 0) a[++i][--j] = ++tot;
    19          while((i - 1) >= 0 && a[i - 1][j] == 0) a[--i][j] = ++tot;
    20     }
    21     for(i = 0; i < n; i++)
    22     {
    23         for(j = 0; j < n; j++)
    24         {
    25             if(a[i][j] == 0)
    26             {
    27                 
    28                 break;
    29             }
    30             printf("%-4d", a[i][j]);
    31         }
    32         cout << endl;
    33     }
    34     
    35     system("pause");
    36     return 0;
    37 }

     我觉得代码没什么问题,但是提交上去返回信息是答案基本正确,格式错误,我也不知道哪里出了问题o(╯□╰)o

          华为的效率很高。。因为昨天下午接到通知说今天就要面试了。。所以昨天没有更新。。收到短信说是2点面试,为了避免机试时差点迟到的杯具我12点多就去到成研所了。去到那里发现来面试的基本都是研究生。。压力好大。。 先是做了大半个小时坑爹的性格测试(同样坑爹的是机子里的输入法同样打不出我的名字。。)做完性格测试等了一会就被叫去技术面了。先是让我自我介绍一下,然后介绍一下我做的项目,我做的是模糊图像处理方面的,面试官估计对这个不是很懂。。我就在那balabala讲了一堆。。讲的面试官云里雾里的,估计他也不是听得很懂。。(我的表达能力是硬伤==)然后面试官就问了我一些常见的问题:用过malloc函数吧,说说它是怎么分配内存的,这个我刚好昨晚看了一下,就balabala讲了一堆。接着又问了c跟c++的区别,我才刚开始看c++啊。。就随口说c是面向过程,c++是面向对象的,然后杯具就来了。。面试官就抓住面向对象猛问,估计是正好碰上他枪口了,还叫我画了个类图什么的。。我这些设计模式啊什么的都没了解过啊。。就乱画了个类图出来。。然后又问了个好像也是机试的题目吧,不过不是我考的那三道之一,就是字符串压缩问题,我一看这不是跟那道往年的华为机试题差不多的么!我前几天有做过啊,还写了代码出来的呢!但是现场让我手写代码就写不出来了啊。。只是把思路跟面试官说了一下。最后面试官跟我说你的算法能力还不错,你做的那个项目也是研究算法的,但是我们招的是软开,你回去还是去找一些开源项目来做做,做出一个真正的软件出来吧。 就这样被赤果果的BS了o(︶︿︶)o唉 

          回来的感受就是自己的实际工程经验还是太少,还有基础什么的完全比不过大计院的啊。。回去还是好好啃设计模式,好好啃C++,多做些实际项目才是王道!加油!共勉!

           

  • 相关阅读:
    A1117. Eddington Number
    A1116. Come on! Let's C
    A1115. Counting Nodes in a BST
    A1114. Family Property
    A1113. Integer Set Partition
    OC之【NSValue的使用】
    OC之【NSDate使用】
    NSString与int和float的相互转换
    OC之【@protocol协议】
    OC之【深拷贝(mutableCopy)和浅拷贝(copy)】
  • 原文地址:https://www.cnblogs.com/yomman/p/3604215.html
Copyright © 2011-2022 走看看