Apples Prologue(吃苹果问题) C++

题目描述
八尾勇喜欢吃苹果。她现在有 m(m≤100) 个苹果,吃完一个苹果需要花费 t(t≤100) 分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s(s≤10000) 分钟,请问她还有几个完整的苹果?

输入格式
输入三个非负整数表示 m 、t 和 s。

输出格式
输出一个整数表示答案。

输入样例
50 10 200

输出样例
30

分析:
这道题虽然难度不大,但要注意它设下的陷阱,我们应考虑如下情况:

  1. 注意是求完整的苹果,啃了几口但没吃完的苹果一定要排除
  2. 如果吃一个苹果需要0分钟(这种情况看起来不可思议但确实需要考虑),此时s/t是没有意义的,应该分开讨论,即t=0时,剩下的完整苹果数量仍为m(因为不可能一瞬间就吃完一个苹果)
  3. 如果苹果不够吃,不能输出负数,得输出0

代码如下:

#include<iostream>
#include<cmath> 
using namespace std;
int main(){
	/*
	m:吃之前苹果总数
	t:吃完一个苹果所需时间
	s:吃苹果总共所花时间
	*/
    int m,t,s;
    cin>>m>>t>>s;
    if(t==0){
    	//不能一瞬间吃掉苹果
        cout<<m<<endl;
    }else{
    	/*
        1. ceil函数是向上取整函数,注意这个函数的输入输出都是double
           类型,所以需要强制转换成int类型
        2.max函数的作用是防止出现输出负数个苹果
        */
        cout<<max(m-(int)ceil(1.0*s/t),0)<<endl;
        }
    return 0;
}

版权声明:本文为weixin_45619844原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。