跨国公司面试题-简单的思路

我曾在不同的地方看到这样的一个 跨国公司面试题:

 

    有两海盗得了99个铁球和一个金球,商议轮流拿铁球,金球最后一次拿,每次至少要拿一个,最多不能超过五个,最后金球分到哪个就是哪个的。如果让你先拿,你该怎么拿而保证你得到金球。

 

其实这是一个小学数学题目,求余数的问题,许多人把他复杂化了。

这样的题目可以变成一个抽象有题目:共有N个球。每次最少拿1个,最多拿M个。谁拿最后一个谁就是胜利者。那么是先拿胜还是后拿胜呢?

 

可以根据余数来判断:

     N/(1+M)没有余数就是后拿的胜。保证每一轮拿(1+M)个。如果有余数R那么先拿的胜。第一次先拿R个,然后保证每轮拿(1+M)个。这时先拿的人多拿了一次。

 

上面一题的答案就出了:99/(1+5)的余数是3。所以先拿的人第一次拿三个就可以了。

 

后来我想这样的题目其实可以更进一步推广的:

 

共有N个球。每次最少拿m个,最多拿M个。谁拿最后一个谁就是胜利者。其实是一样做的,不过要注意的是:这时余数可以会比m小,也可能比M大的.如果比m小就认为最后一次不受限制.

余数为0或余数比M大则是后拿者胜,否则就是先拿者胜.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值