P5709 【深基2.习6】Apples Prologue / 苹果和虫子
题目详细解释 问题背景分析: 小B在连续不断地吃苹果,没有任何休息时间 吃完一个苹果后立即开始吃下一个苹果 我们需要计算在给定的时间内,还剩下多少个完全没有被吃过的苹果 关键概念理解: 完整的苹果:完全没有被咬过、完好无损的苹果 不完整的苹果:包括已经吃完的苹果和正在吃但还没吃完的苹果 时间连续性:时间计算是从开始吃第一个苹果起连续计算的 核心难点: 如何处理"正在吃但还没吃完"的苹果 如何避免除零错误 如何处理时间足够吃比实际更多苹果的情况
#include <bits/stdc++.h>
using namespace std;
int main() {
int m, t, s;
cin >> m >> t >> s; // 输入苹果数量、吃一个需要的时间、已经过去的时间
// 特殊情况1:如果吃一个苹果需要0分钟,瞬间吃完所有苹果
if (t == 0) {
cout << 0 << endl;
return 0;
}
// 计算已经吃了多少个苹果(包括没吃完但已经不完整的)
int sum;
if (s % t == 0) {
sum= s / t; // 正好吃完整数个
} else {
sum = s / t + 1; // 多一个不完整的苹果
}
// 计算剩下的完整苹果数量
int count = m - sum;
// 如果剩下的苹果数量小于0,说明吃超了,实际上剩0个
if (count < 0) {
count = 0;
}
cout << count << endl;
return 0;
}