某程序员去华为面试,因为错了一道题而被淘汰

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了某程序员去华为面试,因为错了一道题而被淘汰相关的知识,希望对你有一定的参考价值。

题目

有一道数学的逻辑题,这种提一般智商测试或者公务员考试中经常见到,传说华为有道面试题是这样的,求出下划线的数字应该是多少?

请准备好纸和笔,思考10分钟,看看你能否得出正确答案。

1分钟后。。。

2分钟后。。。

3分钟后。。。

4分钟后。。。

5分钟后。。。

6分钟后。。。

7分钟后。。。

8分钟后。。。

9分钟后。。。

10分钟后。。。

恭喜算出答案了,智商高的同学可能3-5分钟就算出来了,下面我来公布答案。

答案

33和36。算对了吧。果然还得是你啊!!!

分析

很明显这是一道逻辑推理,因为正常情况下,2+5不可能等于12,3+6也不可能等于21。接下来我们就开始找规律。首先我们很容易找出的规律是第一个数字比第二数字小3.即

4-1=3

5-2-=3

6-3=3

所以我们可以确定这个规律成立,适用于下面的一个公式。

假设我们把第一个数设为x,第二数设为y。

得出一个简单的方程式即y-x=3。

但是仅仅只是这样还不能够有计算出,下划线里的数字是多少,所以我们还得继续找规律。经过一番观察和分析,我们就能发现第一个数字乘以第二个数字再加上第一个数字就是最后一个数字,即

1×4+1=5

2×5+5=12

3×6+3=21

所以我们可以确定这个规律也成立,适用于下面的一个公式。

得出一个简单的方程式即xy+x=1221。

最终得出两个二元一次方程式,求解x和y。

解题

代码

下面用java代码计算求解方程式,得出下,x和y。首先我们知道代码里不能像数学公式一样的写,我们得转换成代码的公式。

xy+x=1221变为x(x+3)+x=1221 再变为 x²+3x+x=1221 再转变为 x²+4x=1221

转换为 (x+2)²-4=1221 转化为(x+2)²=1225 最终转化为

转道这里差不多可以写代码求值了。

public class Test 
    public static void main(String[] args) 
        int[] xy=getXy(1225);
        System.out.println("第一个下滑线的值为"+xy[0]+"\\n第二个下滑线的值为"+xy[1]);
    


    private static int[] getXy(int value)
        int x= (int) (Math.sqrt(value)-2);
        int y= x+3;
        return new int[]x,y;
    

控制台输出

以上是关于某程序员去华为面试,因为错了一道题而被淘汰的主要内容,如果未能解决你的问题,请参考以下文章

月薪2W程序员去面试,被HR直接淘汰:就算你技术再好,也不会录用!

阿里程序员面试华为被淘汰,得知原因后发飙:我才不稀罕

华为招程序员的面试题:8+11=?,网友:真的太难了

程序员面试华为,面试官出了这样一个面试题,网友:题目太难了!

几家最好的it公司面试全揭秘

华为经历 | 程序员面试从算法到三观