程序员面试IQ问题解答——选乒乓球问题

来源:互联网 发布:php get不到数据 编辑:程序博客网 时间:2024/05/17 20:23

乒乓球问题
简介:该题由中华谣网站改造,有一定难度。
详细介绍:

假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球?

答案 先拿4个,假设另一个人B拿X个,则自己就拿6-x个;这样就能保证自己拿到最后一个。

思路:100个乒乓球从1—100按顺序编号,自己记为A,另一人记为B,A和B按照小球的编号顺序拿球

1)要保证自己拿到第100个求,A倒数第二次拿到的最后一个球的编号必须是94(可以推算一下,如果B能拿到94—99,则不能保证A能拿到第100个球,其他的可自行推算一下);

2)按照“假设另一个人B拿X个,则自己就拿6-x个”,经过n次,俩人共拿去6*n个球;

3)所以每次A拿到的求得编号是4+6n;n=15时,4+6n=94;此时轮到B拿球;

4)体重规定,至少拿一个球,所以B最后一次无论怎样拿,A总能保证拿到第100个球。

原创粉丝点击