注意:这道题比较狡诈,我被坑过一次 有 n​ 个苹果,箱子里有一条虫子。

虫子每 x​ 小时才能吃掉 1​ 个苹果(它吃得很慢,而且一次只吃一个,没吃完不会碰下一个)。

现在过了 y​ 小时,问还剩几个 完整​ 的苹果?

第一步:虫子吃了几个苹果?

虫子吃一个苹果要花 x​ 小时,所以:

如果时间不到 x​ 小时,一个都没吃完。

如果时间刚好等于 x​ 小时,刚好吃掉一个。

如果时间超过 x​ 但不到 2x​ 小时,还是只吃掉了一个(因为第二个还没开始吃)。

其实很简单:把 y 除以 x,如果有余数就多算一个(因为剩下那点时间虫子已经开始吃下一个了,那个苹果就不完整了)。

例如:

x=4 小时吃一个,过了 y=9 小时。

9 ÷ 4 = 2 余 1 → 有 2 个完整的被吃完,还多出 1 小时,虫子已经开始吃第 3 个了,所以第 3 个也不完整。

总共被糟蹋的苹果数 = 2 + 1 = 3 个。

这个算法叫“向上取整”:

被吃掉的苹果数 = (y + x - 1) ÷ x(只取整数部分)。

第二步:剩下的完整苹果

原来有 n 个,被吃掉了几个,剩下的就是:

剩下的 = n - 被吃掉的

但是注意:如果虫子吃得太多(比如 n=3,被吃掉5个),剩下的不能是负数,那就变成 0 个。

举例

给的例子:n=10,x=4,y=9

被吃掉 = (9+4-1)÷4 = 12÷4 = 3

剩下 = 10 - 3 = 7 ✅

总结成一句话

先算出虫子已经咬过或吃完了几个苹果(用除法有余数就加一),再用原来的苹果数减去它,如果结果小于0就当0。 懂了吗,记得点赞哦 下次颁布题解时间将在2026.7.21,同时将晒出本期代码,不能复制!

1 条评论

  • 1