我们先把题目拆成3个核心规则,所有代码逻辑都围绕这3条来写:
1. 总共有 n 个苹果,虫子每x小时吃1个完整的苹果,吃完一个才会吃下一个;
2. 只算「完整的苹果」,被虫子咬了一口、没吃完的苹果,不算完整的;
3. 苹果最多被吃完,剩余数量最少是0,不可能出现负数(总不能欠虫子苹果吧)。
输入:3个整数 n (总苹果数)、 x (吃1个苹果的小时数)、 y (经过的小时数)
输出:y小时后,剩余的完整苹果数量
二、整体解题思路
我们把解题拆成2个核心步骤,对应代码的两大块逻辑:
1. 第一步:先算剩余的苹果数 a
分两种情况:
* 情况1:y小时刚好是x的整数倍 → 虫子刚好吃完整数个苹果,没有咬到一半的苹果,剩余数=总苹果数-吃掉的整数个苹果;
* 情况2:y小时不是x的整数倍 → 虫子除了吃完整的苹果,还多咬了一口下一个苹果,这个被咬的苹果不算完整,要多减1个。
2. 第二步:处理边界情况,输出最终结果
如果算出来的剩余数 a 是负数,说明苹果早就被虫子吃完了,直接输出0;如果 a 是正数,说明还有剩余,直接输出 a 。
最终代码