题目简述
一共有 \(n\) 个苹果,有一只虫子,这只虫子吃掉一个苹果需要 \(x\) 个小时,且虫子比较专一,当它吃完一个苹果之后,才会吃另外一个。
要把这一箱苹果运回家之后才可以处理掉虫子。然而,他回家的路途需要 \(y\) 小时,他开始思考,在 \(y\) 小时后,箱子里还剩下多少个完整的苹果呢?
分析样例
样例输入:\(10 4 9\)
根据输入,我们有以下信息:
- 苹果个数:\(n = 10\)
- 虫子吃完一个苹果所需时间:\(x = 4\)
- 回家所需时间:\(y = 9\)
现在我们需要计算在回家的9小时后,箱子里剩下多少个完整的苹果。
首先,虫子吃完一个苹果所需时间为4小时,那么在9小时内,虫子最多能吃几个苹果呢?我们可以用9除以4来计算。
\(9 ÷ 4 = 2……1\)
所以,虫子在9小时内最多能吃2个完整的苹果。而剩下的1小时,虫子无法吃完一个完整的苹果,但是可以把一个苹果啃得不完整。
也就是说,只要有余数,就要加上一个苹果。
接下来,我们需要计算箱子里剩下的完整苹果个数。初始时,箱子里有 \(10\) 个苹果。虫子吃掉了 \(2\) 个完整的苹果和一个不完整的苹果,所以剩下的完整苹果个数为 \(10 - 3 = 7\)。
最后,输出剩下的完整苹果个数,即输出结果为7。
代码&整体思路
首先,输入的三个整数 \(n\)、\(x\) 和 \(y\),分别表示苹果个数、虫子吃完一个苹果所需时间和回家所需时间。
使用除法和取余运算,将 \(y\) 小时转换为吃掉的苹果个数,然后从总数n中减去这个个数,得到剩下的完整苹果个数。如果剩下的个数小于 \(0\),则取 \(0\)。
C++代码实现
#include <iostream>
using namespace std;
int main() {
int n, x, y;
cin >> n >> x >> y;
// 计算箱子里剩下的完整苹果个数
cout << max(0, n - (y / x + (y % x != 0))) << endl;
return 0;
}
完结撒花~
最后,吐槽一下出题人,这么简单的题目怎么好意思出成基础赛的?!