酷代码 AI
菜单

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?(c++)

```cpp #include <iostream> using namespace std; int main() { int n, x, y; cin >> n >> x >> y; // 输入苹果总数、吃一个所需时间和经过的时间 // 计算被吃掉的苹果数量(向上取整) int eaten = (y + x - 1) / x; // 确保不超过实际存在的苹果数 if (eaten > n) eaten = n; cout << n - eaten << endl; // 剩余完整苹果数 return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 整数除法陷阱:当用`y/x`直接相除时会丢失小数部分,必须通过`(y+x-1)/x`实现向上取整,否则少算被啃过的苹果会导致结果偏大。 2. 边界溢出控制:若计算出的被吃数量超过总苹果数(如y极大时),需用`min(eaten, n)`限制最大值,避免出现负数结果。 3. 极端输入验证:当x=0时会产生除零错误,但题目隐含x≥1(虫子总要花时间吃苹果),实际代码可不加此判断。 [2026-02-01 11:26:11 | AI写代码神器 | 292点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多