腾讯经典面试题(一):1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B说我也知道了

题目:1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B说我也知道了,请问哪两个数?


有的同学会分一分最后作为答案的两个数是不是相同的。我个人愚见是没有必要的,请问题中规定两个数不一样么?题中没有规定,所以我们完全不需要去考虑。。不喜勿喷。。


如果一定要区分是不是一样的两个数怎么办呢?那就是另外一道题,或者当你答出最后两个数的时候,面试官继续问:如果两个数不一样怎么办?这个时候才应该去考虑 这两个数是不是一样。。这种情况我将放到最后来讨论。


回到题中:

第一轮:

A只知道两个数之和,不知道这两个数。

B只知道这两个数之积,不知道这两个数。

第二轮:

当B说不知道的时候,A突然说知道了,这时B也知道了。。

解析:

A作为知道这两个数的和,却为不知道两个数是多少,因为如果给的是3,你会不知道是1+2=3么?给你40,你会不知道20+20=40么?你会不知道19+20=39么?所以这里有一个潜在的范围,这个“和”应该在4至38之间(大于等于4,小于等于38)。所以我们从4开始举例,比如给你的是4,你就不能确定到底是4=2+2还是4=1+3。

试想:如果给B的这个积是2、3、5、7、11、13、17、19。。那么乘积是不是只有“1*本身”这种形式呢?这里引入一个知识点:质数=1*数字本身。。所以就是说2、3、5、7以上这几个数都是质数。。如果给B的是质数,那么一下就知道这两个数是什么了,即一定是“1”和“数字本身”。

既然B说不知道,说明给B的这个积一定既可以分解成“1*本身”和“另一种或几种别的形式”,如9=1*9=3*3

那么A为什么第一次说不知道呢?因为A不确定到底是哪个。可是为什么当B说完以后,A就知道了呢?

这里有个逻辑的坑,如果各位跳过了这个坑,本题就迎刃而解了。。这个坑是什么呢?

因为A根据B这一句话,就能排除一部分选项。就是说,A根据这句“不知道”把其他答案全部排除了。

B说不知道以后,这句“不知道”到底代表了什么?

代表了B拿到的这个积,根本不是一个质数。。什么意思?就算不是质数又如何?

对A来讲,B拿到的不是质数,就说明A这个数的分解里,不存在“1*数字本身”的这种分解。即背后的这两个数,不会是“1”和“一个质数”的模式。

因为质数只有“1*本身”这一种形式,所以拿4=1+3=2+2来说,“1*3”这一步就不成立了,如果存在“1*本身”这一步就代表了积是质数。因为无论A和B 拿到什么数,背后的两个数是一样的,对A来说,如果是1+3,那么对B就是1*3,3就是质数,可是B说他不是质数,这样前后矛盾。所以对A来说,就只剩了4=2+2这个选项,所以A说他知道了。

B为什么也说知道了?

因为假如B是4是积,4=1*4=2*2,也就是说 B猜A拿得这两个数之和,不是1+4=5就是2+2=4。如果A是5,那么5=1+4=2+3 ,1+4会被排除,2*3=6也与4相矛盾。那么A只能拿到的是4,排除掉1*4,就只剩2和2这两个数了。

各位同学,看明白了么?

你可能感兴趣的:(腾讯经典面试题(一):1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B说我也知道了)