题目描述
小 B 喜欢吃苹果。她现在有 𝑚m(1≤𝑚≤100)个苹果,吃完一个苹果需要花费 𝑡(0≤𝑡≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 𝑠(1≤𝑠≤10000)分钟,请问她还有几个完整的苹果?
输入格式
输入三个非负整数表示 𝑚,𝑡,𝑠。
输出格式
输出一个整数表示答案。
输入输出样例
输入 #1
50 10 200
输出 #1
30
说明/提示
如果你出现了 RE,不如检查一下被零除?
首先,八尾勇吃了𝑠/𝑡个苹果,那么问题就来了:如果𝑡是0,那么八尾勇肯定能吃完所有的苹果,输出0,但是0又不能做除数,这种情况要特判。
接着往下想,如果𝑠是𝑡的整数倍,那么八尾勇就吃了𝑠/𝑡个完整的苹果,剩下𝑚−𝑠/𝑡个完整的苹果;如果𝑠s并不是是𝑡t的整数倍,八尾勇就吃了𝑠/𝑡个完整的苹果和一个残缺的苹果,那么就有𝑠/𝑡+1个苹果不完整了,剩下𝑚−𝑠/𝑡−1个苹果。可是:说不定他在𝑠秒内就吃完了这堆苹果了呢,那么就没有剩下的苹果,输出0。
上代码:
#include<bits/stdc++.h>//万能头文件
using namespace std;
int m,t,s;
int main()
{
cin>>m>>t>>s;
if(t==0)//特判t=0的情况
{
cout<<0<<endl;
return 0;
}
if(s%t==0)//如果s是t的整数倍
cout<<max(m-s/t,0)<<endl;
else//如果不是
cout<<max(m-s/t-1,0)<<endl;
return 0;//程序结束
}
程序中max(a,b)就是a,b中的最大值,如果𝑚−𝑠/𝑡比0小,大的就是0了,输出的就是0。