1. 292. Nim 游戏
首先,如果当前石头为 4 个,并且是我先拿,无论怎么拿都是输。 然后考虑,如果是 4 的倍数,8, 16, 20。依然是我先拿的话,那么无论无何都可以 4 个 4 个一组拿到最后只剩下 4个,依然是我输。
而如果不是 4 的倍数,我先拿,那我都可以拿走几个石头,使得剩余石头为 4 个倍数。我赢了。
return n%4!=0;
2. 用绳子计时 15 分钟
给你两根绳子,绳子不是均匀的。 已知每根绳子烧完时正好是 1 个小时,要求用这两根绳子,完成 15 分钟的计时。
解答: 绳子 l1, l2。 同时点燃绳子 l1 的两端,以及绳子 l2 的一端。 等待 l1 烧完,时间为 30 分钟。此时,点燃 l2 的另外一端,并开始计时,等待 l2 烧完,完成 15 分钟的计时。
3. 药丸承重
有 20 瓶药丸,其中 19 瓶药丸质量相同为 1 克,剩下一瓶药丸的质量为 1.1 克。瓶子中有无数个药丸。要求使用一次天平找出药丸质量为 1.1 克的药瓶。
解答: 从药丸的数量上来制造差异:从第 i 瓶药丸中取出 i 个药丸,然后放到天平上一起称重。假设重 1.1 克的药丸用了 x 颗,那么称出来的重量将比正常重量重 x * 0.1 克, 求出 x,则目标药瓶即为第 x 瓶。