每天3道面试题 12/19

2016-12-19 22:32 阅读 604 次 评论 0 条

数组与指针的关系是什么?

数组与指针之间没有任何关系。但是两者有相似之处,数组的数组名可以看作一个指针,指向数组的首元素的首地址,例如:

教授选出两个从2到9的数字,把他们的和告诉学生甲,积告诉学生乙,让他们轮流猜这两个数,甲说:我猜不出;乙说:我猜不出;甲说:我猜到了;乙说:我也猜到了。问这两个数是多少?

答案:3,4 。设两个数为n1,n2,n1> =n2,甲听到的数为n=n1+n2,乙听到的数为m=n1*n2,证明n1=3,n2=4是唯一解。

证明:要证以上命题为真,不妨先证n=7:

1)必要性

i) n> 5 是显然的,因为n <4不可能,n=4或者n=5甲都不可能回答不知道。

ii) n> 6 因为如果n=6的话,那么甲虽然不知道(不确定2+4还是3+3)但是无论是2,4还是3,3乙都不可能说不知道(m=8或者m=9的话乙说不知道是没有道理的)。

iii) n <8 因为如果n> =8的话,就可以将n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要条件是x=6即n=10,那样n又可以分解成8+2,所以总之当n> =8时,n至少可以分解成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由马上说知道。以上证明了必要性。

2)充分性

当n=7时,n可以分解成2+5或3+4,显然2+5不符合题意,舍去,容易判断出3+4符合题意,m=12,证毕于是得到n=7 m=12 n1=3 n2=4是唯一解。

病狗问题:一个住宅里有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能分辨出其他的狗是否病狗,现在,上级传来通知,要求住户处决这些病狗,并且不能指认他人的狗是病狗(就是只能判断自己的),过了7天之后,所有的病狗都被处决了,问:一共多少条病狗?为什么?

答案:第一天,没有人判断出自家的狗是病狗,说明病狗的数量绝对大于1,;第二天没有人判断出自家的狗是病狗,说明病狗的数量绝对大于2;以此类推,第七天病狗全部处理完,说明在第七天,有些人看到了6只病狗,判断出自家的狗是病狗。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:每天3道面试题 12/19 | 术与道的分享
分类:剑指Offer 标签:,
1024do.com导航_术与道导航平台

发表评论


表情