C++面试题 考考大家
1-30间有两个数,甲知道两数之和,乙知道两数之积,首先甲问乙:你知道两个数吗?乙说不知道,又反问甲,甲也说不知道,然后乙说:我知道了,甲也说自己知道了,求这两个数是什么...
1-30间有两个数,甲知道两数之和,乙知道两数之积,首先甲问乙:你知道两个数吗?乙说不知道,又反问甲,甲也说不知道,然后乙说:我知道了,甲也说自己知道了,求这两个数是什么
展开
1个回答
展开全部
应该是1和6
第一次甲问乙,乙不知道,因为乙有两种选择,1和6或2和3。假设这两个数是2和3,那么甲就应该是:5, (1+4) (2+3),如果是1和4的话,那么乙一定知道,然而乙却不知道,所以甲就只剩下2和3了,第二次乙问甲时,而甲却说不知道,那么这两个数肯定不是2和3了,所以乙就知道了,就是1和6。
第一次甲问乙,乙不知道,因为乙有两种选择,1和6或2和3。假设这两个数是2和3,那么甲就应该是:5, (1+4) (2+3),如果是1和4的话,那么乙一定知道,然而乙却不知道,所以甲就只剩下2和3了,第二次乙问甲时,而甲却说不知道,那么这两个数肯定不是2和3了,所以乙就知道了,就是1和6。
追问
答案是这样的,但是我还是没搞懂,比如说1_30之间还可以12,3 4和2 6 为什么要是1和6
追答
简单说来就是,甲乙两人都不确定,且积必须两种可能(甲先问的,后来立刻知道),和有多种可能,这样才能在对方说了知道后,自己也立刻知道。其他情况,比如你说的3,4对甲来说,和是7(可能性很多),积却为12(可能性不止两种,像1,12或2,6或3,4)。2,6道理也是同样,应该理解了吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询