2016美团研发工程师笔试题(让人头疼的两个数字)

通用能力-智力题专项练习 1、小李和小王各有书籍若干本,小李对小王说:“我如果给你2本,我们的书将一样多。”小王说:“我如果给你2本,我的书籍数量将只有你的三分之一。”请问,小李和小王共有书籍多少本? A.13 B.14 C.16 D.22 解析:解二元一次方程 设:小李=x,小王=y; x-2=y+2 x+2=(y-2)*3 解得小王有6本,小李有10本,二人共有16本 2、有四只老鼠一块出去偷食物(每个都偷了),回来时,族长问它们都偷了什么,老鼠A说:我们每个都偷了奶酪。老鼠B说:我只偷了一颗樱桃。老鼠C说:我没偷奶酪。老鼠D说 阅读详情

前言

博客停止更新一个多月了,之前还下定决心说每周一篇面试题相关的博客的,不过 16 年 12 月到 现在 17 年 3 月过得还是挺充实的,而且也从中学习到了很多;特别在没更新博客这一段时间了,试过了三天只睡了 12 个小时,只为心里的那份信仰。好了,不扯淡了,之后继续更新博客,现在(2017年3月19日00:13:32) 12 点了,看了一些面试题,最终选了 2016 美团研发工程师笔试题的其中一道题来写这篇博客。

题目

从2到5中选两个数,第一个数较大,将两数之和告诉甲,两数之差告诉乙,两个人根据自己手上的数都算不出来答案,求这两个数分别是多少?

A. 4,3
B. 5,3
C. 5,2
D. 4,2

解题

看到这题,第一个想法就是排除法来解了,那么,我们一个一个答案来分析:

  • A 选项中,甲得到的两数之和为 7 , 乙得到的两数之差为 1 ,因此甲从 2 到 5 这四个数中,能组成两数之和为 7 的组合有 (5 , 2) 和 (4 , 3) ,乙组成两数之差为 1 的组合有 (3 , 2) , (4 , 3) 和 (5 , 4) ,因此两个人都算不出答案
  • B 选项,两数为 5 和 3,因此两数之和为 8 ,甲得到数为 8 ,可以猜到的组合就只有 (5 , 3)了,因为题目是说明甲乙两个人都算不出答案,因此排除 B 选项
  • C 选项中,两数为 5 和 2 ,因此两数之差为 3 ,乙得到的数为 3 ,从 2 到 5 中的组合就只有(5 , 2),因此排除 C
  • D 选项中,两数和为 6,组合只有 (4 , 2) , 所以排除 D

拓展

上面的题目是不是挺简单的,那么来拓展一下,看一道类似的经典题目【鬼谷子问徒】

孙膑,庞涓都是鬼谷子的徒弟。一天鬼谷子出了这道题目:
他从 2 到 99 中选出两个不同的整数,把积告诉孙膑,把和告诉庞涓;
庞涓说:我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么。
孙膑说:我本来的确不知道,但是听你这么一说,我现在能够确定这两个数字了。
庞涓说:既然你这么说,我现在也知道这两个数字是什么了。
请问这两个数字是什么?为什么?

这道题目一定要看,用上面的方法解决太麻烦了吧,先直接写个穷举来看下答案吧


package com.liangdianshui;

/**
 * <p>鬼谷子问徒[经典] 孙膑,庞涓都是鬼谷子的徒弟。一天鬼谷子出了这道题目: 他从2到99中选出两个不同的整数,把积告诉孙膑,把和告诉庞涓;
 * 庞涓说:我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么。 
 * 孙膑说:我本来的确不知道,但是听你这么一说,我现在能够确定这两个数字了。
 * 庞涓说:既然你这么说,我现在也知道这两个数字是什么了。 请问这两个数字是什么?为什么?
 * </p>
 * 
 * @author Administrator
 *
 */
public class DigitalProblem {

    public static void main(String[] args) {
        for (int n = 6; n < 200; ++n) // 穷举和的可能,最大不超过200
        {
            // 其和能同时满足条件1和3者即为结果
            if (p1(n) && p3(n)) {
                // 找出对应解
                for (int t = 2; t * 2 < n; ++t) {
                    if (p2(t * (n - t))) // 分拆结果符合条件2就输出
                        System.out.println("(" + t + "," + (n - t) + ")");
                }
            }
        }
    }

    /**
     * 是否是唯一分解
     * 
     * @param n
     * @param nMax
     *            最大值为100
     * @return
     */
    public static boolean isOnlySolve(int n, int nMax) {
        int nRet = 0; // 记录满足本条件数
        for (int i = 2; i * i < n; ++i) {
            if (n % i == 0 && n / i < nMax)
                if (++nRet > 1) {
                    return false;
                }
        }
        return true;
    }

    /**
     * sum的任意和的分拆之积不可能有唯一分解,否则对方可能猜出
     * <p>
     * 我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么。
     * </p>
     * 
     * @param sum
     * @return
     */
    public static boolean p1(int sum) {
        if (sum < 6)
            return false;
        for (int t = (sum - 1) / 2; t > 1; --t) {
            if (isOnlySolve(t * (sum - t), 100))
                return false;
        }
        return true;
    }

    /**
     * 只有一种积的分拆满足 p1
     * <p>
     * 我本来的确不知道,但是听你这么一说,我现在能够确定这两个数字了
     * </p>
     * 
     * @param times2
     * @return
     */
    public static boolean p2(int times2) {
        int nRet = 0; // 记录满足本条件数
        for (int nd = 2; nd * nd < times2; ++nd) {
            if (times2 % nd == 0 && p1(nd + times2 / nd))
                if (++nRet > 1)
                    return false;
        }
        return true;
    }

    /**
     * 只有一种和的分拆满足 p2
     * <p>
     * 既然你这么说,我现在也知道这两个数字是什么了
     * </p>
     * 
     * @param sum
     * @return
     */
    public static boolean p3(int sum) {
        int nRet = 0; // 记录满足本条件数
        for (int t = (sum - 1) / 2; t > 1; --t) {
            if (p2(t * (sum - t)))
                if (++nRet > 1)
                    return false;
        }
        return true;
    }

}


运行的结果为:

程序运行结果.png

有人直接逻辑推理出来的吗?在评论那里写下可好,让我学习学习

2022美团校招技术岗笔试全部AC_Code分享 【自动车算法岗】差了5秒钟,终究还是没能AK呀。第三题一开始只对了18%的数据,在还有20分钟的时候,发现题目看错了,码到 cout<<ans<<endl; 的时候发现还剩5秒了,赶紧从ide复制到代码框内,光标刚刚放到保存代码上,发现按不动了,好家伙,时间截止了!!! 笔试题分为两大部分:4道算法题+3道人工智能相关知识的多选题。限时两个小时,每个子部分提交后可以再返回修改,这点还是很人性化的,不像有的笔试,子部分提交后就无法返回修改了,就不是那么的友好了。 题目大概. 阅读详情

相关推荐

全国各省份影像下载地址(11级别)

cesium中使用urltemplate加载,leaflet中使用tile加载,具体加载有问题可以给我留言。

资深三维GIS开发 5143

智力题

1.有土豆,萝卜各一筐,土豆有 240 个,萝卜有 313 个,把这两筐平均分给一些小朋友,土豆一直分到最后余 2 个,萝卜分到最后还余 7 个,求最多有多少个小朋友参加分水果?(B) A:14 B:17 C:28 D:34 解析:能被238和306整除的数在从中挑选最大的一个. 2.1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水? A:37 B:38 C:39 D:40 3.从2到5中选两个数,第一个数较大,将两数之和告诉甲,两数之差告诉乙,两个人根据自己手上的数都算不出

m0_51756019的博客 933

光学仿真案例(4) 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟

本案例展示了一个基于纳米粒子激发平面波的米氏散射仿真模型(mie scattering),计算其散射和吸收截面、局域场增强和远场散射分布,同时将截面和远场结果与解析解进行了比较,验证了仿真模拟的准确性。

q895235273的博客 3593

2020前端最新笔试题,你品,细品

【 题外话 】不准备考研,那么该去干嘛呢?毫无疑问,那就是实习,那么即使是实习,那么在要想进入自己心仪的企业之前,笔试这一关终究是无法避免的!特此,刷刷题也是有必要的哈!【 第一题 】...

weixin_43964148的博客 394

(最新更新!)2024全国大学生数学建模竞赛(国赛)B题决策优化+鲁棒模型完整建模全解全析

2024全国大学生数学建模竞赛(国赛)B题完整建模全解全析(已更新!)

Yilu264的博客 9417

非凸问题的求解方法以及连续凸逼近SCA(Successive Convex Approximation)方法

非凸问题的求解方法 针对形如下式的函数: min⁡x∈XV(x)=F(x)+G(x)\min\limits_{{\bf{x}}\in X} V(x)=F(x)+G(x)x∈Xmin​V(x)=F(x)+G(x); 其中F为光滑的(不一定convex),G是convex的但是可能不可微,且存在:对于n维实矢量空间,有X=X1×...×XNX=X_1 \times...\times X_NX=X1​×...×XN​; x=(x1,...,xN)\bf{x} =(x_1,...,x_N)x=(x1​,...,xN

weixin_44535200的博客 2万+

美团研发岗笔试真题练习(选择题)

一: 设栈S和队列Q的初始状态均为空,元素啊,a,b,c,d,e,f,g依次进入栈S。若每个元素出栈后立即进入推列Q,且7个元素出队的顺序是b,d,c,f,e,a,g,则栈S的容量至少是? 答: 3个。栈是后进先出,队列是先进先出。画个图,十分明了。 现有二叉搜索树(BST)前序遍历结果序列为abdefgc,中序遍历结果序列为debgfac,请问后序遍历结果序列? 答: 如图所示为 defgbca 以下设计模式中,哪一项不属于结构性模式? A 适配器模式 B 代理模式 C 命令模式 D 装饰模式 答:

weixin_43136158的博客 3529

STM32 ES8266上阿里云IOT MQTT实践【第七章】:ESP8266+MQTT上阿里云物联网平台实践

本篇文章讲述了如何使用stm32接入阿里云IOT,WiFi模块为ESP8266,可以实现发布以及订阅。

超级大洋葱的博客 2万+

美团点评校招笔试题

美团点评1 1:在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章? 因为UDP要达到TCP的功能就必须实现拥塞控制的功能,而且是在路由之间实现,这个在底层明显是做不到拥塞控制的,在应用层也是做不到的,因为应用层之间和应用程序挂钩,一般只能操控主机的程序,而表示层是处理所有与数据表示及运输有关的问题,包括转换、加密和压缩,在传输层是不可能的,因为你已经使用了UDP协议,无法

majunfu 1万+

UE4 - 河流流体插件Fluid Flux

Fluid Flux可以模拟一定区域内的流体效果,由于使用顶视图所Capture的Heightfield信息,所以只支持室外开阔场景,不支持洞穴等室内场景;

GT的虚幻引擎文档 6666

车企自动泊车技术全解|纯视觉/多传感器融合双路线、端到端大模型革新 助力机械车位/无划线车位/极窄车位精准泊车落地

随着智能驾驶技术全面下沉,自动泊车已从高端车型专属配置,普及至十万级家用车型,成为车载核心刚需功能。但市面主流车企的泊车能力差距极大,核心差异源于传感器硬件架构、算法迭代逻辑、场景训练体系的全方位分化。传统规则式泊车算法仅适配标准划线车位,面对地库暗光、标线磨损、机械双层车位、极窄靠墙车位、无划线空地泊车等真实长尾场景极易失效。

getusushu的博客 105

2023校招美团第二次笔试

我们是会加dp[i][j]或者dp[i-1][j]\dp[i][j-1],这些数字就是保证当前字符之前我们判断的字符串是相等的基础上进行判断的。HE和P,这里如果选择替换,只需要操心P换成E的花费,至于长度不同这些问题,在上一步H和空的时候已经处理了。如果选择删除,如果知道HE变换为空的次数,只需要下面的删除一个P。如果选择增加,知道H变换到P的次数,只需要下面的增加一个E。这个动态规划没做出来,估计是推导公式有问题。这个也是直接做,还有提示。主要是搞清楚这个递推的点在哪?HELLO和PLG为例。

m0_46663240的博客 690

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

2022/9/3美团第二次笔试

美团第二次笔试

qq_45688165的博客 1023

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

美团2024春招第二场笔试 - 题解

计算所点菜品的总价,然后减去满减和红包。

weixin_63448617的博客 2951

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

AI技术岗薪资前20榜单。。。

你好,我是郭震AI相关,细分技术领域,薪资前20岗位,都有哪些。今天这篇文章与铁铁们分享一下。1 薪资榜单如下图所示,排名第一:深度学习算法工程师,平均月薪达到3万1千+;排名第二的架构师,薪资与之相似;机器学习算法工程师,月薪2万6千+;AI算法工程师首选语言一般Python,想要做算法工程师的老铁,熟练应用Python是基本要求:再往后的开发还有go语言,语音图形等开发,要想多拿薪水,开发方向...

算法channel 800

反内卷、准点下班、居家办公、福利满满…神仙德企舍弗勒了解一下

风控组,面试+反问总共30分钟,深挖了实习经历,没有八股,手撕,没问项目,最后问了我校招进度、oc情况和能不能提前实习,这有机会到hr面吗,强大的牛友,帮我分析。快手,蓝月亮,宁德时代,真我手机,得物等大厂24秋招内推①蓝月亮【招聘岗位】技术,研发,lT,供应链,市场,职能等【网申链接】http://talent.blu。线下面的,氛围很轻松也不用自我介绍,hr会看着简历来问问题从上到下,挺仔细的个人成绩,项目,实习,获奖,竞赛也会问问为啥想去汇川,个人职业规划,有没有对象,想不。你现在的求职进度如何。

每天多一点干货 690

美团今年的薪资。。。

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达之前我分享了华为、理想汽车、比亚迪、字节跳动、腾讯、阿里、百度、快手、京东、得物、小红书和拼多多的今年校招薪资。本文带大家看看美团的2024届校招程序员岗(含算法和软开)薪资(数据来自网上各个渠道的统计,仅供参考)。美团校招年薪总包构成 = 月薪 x 15.5 + 签字费(部分有) + 股票(部分有)普通 Offer档位:21k...

阿木寺的博客 6299

2020美团点评笔试题目( 技术综合-后台方向)

美团点评2020笔试题目,技术综合-后台方向

智慧包的博客 4854

2019美团后台开发工程师笔试

凉飕飕~~真的是劝退式笔试呀~ 美团的题型有三部分 1.逻辑题20道(看图形找规律,数学题,还有阅读题,很难) 2.技术选择题30道(考了很多指针的,结果c++我真的已经忘得差不多了,后来已经自暴自弃的乱选了) 3.两道编程答题(哎,一道都没做出来) 编程题1. (这道题一看到图,就立马放弃了,还是没刷图的题目的原因呀,太陌生了) 给定一张包含N个点、N-1条边的无向连通图,节点从1到...

amyflower的博客 2715

美团(后台开发工程师实习生)笔试+cvte(C/C++软件开发工程师实习生)笔试

美团笔试: 15道单选+5道多选+1道简答+1道编程(1个小时) 记得的几个考点: 1.接口方法的形式,注意的是public并且不要参数 2.三层循环时间复杂度 3.chmod命令的实用,包括数字形式和.+.的形式 4.给一个先序序列,求不同二叉树个数 5.TCP协议以及网络层其他的一些协议 6.java异常类 7.类的赋值形式 8.一个条件概率的计算题 9.给栈长度和入栈序

咸鱼就是要多学习 1890

2019校招-美团-后台开发工程师面试算法题

美团后台开发工程师 算法题 已知有数组a[]={0,1,0,3,0,12}; 实现将数组中的0全部移到数组的最后,并保证其他元素是排序的 ,即输出为a[]={1,3,12,0,0,0}; 要求时间复杂度高 我的思路: 首先用两个变量i,j来控制,两者皆指向数组的开始位置,用i记录当前为0的位置,让j++来查找不为0的元素,找到之后将j下标的值赋值给i下标,i和...

LYhani82475的博客 1500

美团点评2016研发工程师在线笔试题题解二

1.最大差值有一个长为n的数组A,求满足0&lt;=a&lt;=b&lt;n的A[b]-A[a]的最大差值。思路(用贪心可以O(n)时间复杂度):首先设置差值dis=0,最小数组元素min=A[0],从下标为1的元素开始遍历,若A[i]-min&gt;dis,则更新dis,若A[i]&lt;min,则更新min为A[i];因为以后若有一数组元素A[k]-A[i]&gt;dis,那么一定有A[k]-...

小鲨鱼的博客 794

2016年美团校招笔试题

一、单选题   1、Java中关于finally块中的代码描述正确的是? A. finally也可以在return后执行 B. 异常没有发生时才被执行 C. 如果try块后没有catch块时,finally块中的代码才会执行 D. 异常发生时才被执行   2、类a继承类b并重写b类的protected方法func时,a中func方法的访问修饰符可以是? A. private/pr

小拳头的博客 3239

美团,字节春招笔试秒挂,阿里技术大牛解答完,让我死了个明白

美团笔试第二题 小美想要学习吉他,但是她的精力有限,小美初始学习精力为x,意味着此时学习一个小时可以获得x的知识量,但是小美一天要学习n小时,如果小美选择学习一小时,那她会获得x知识量,精力会减少a,如果休息一小时她不会获得知识量,但是会增加b精力,问小美怎么安排学习时间可以获得最大知识量? 输入示例: [x,a,b,n],初始精力为x,学习一小时精力减少a,休息一小时精力增加b,n小时能获得多少知识量 如[10,5,5,3],初始精力为10,学习一小时精力减少5,休息一小时精力增加5,3小时能获得多少知

weixin_56309996的博客 484
上一篇: 2016腾讯软件开发面试题(不定项选择题【13-25】)
下一篇: 2016年头条校招笔试(LRU算法)
Two_Water
博客等级 码龄12年 573粉丝 134原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值