【题目描述】
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
【输入】
输入仅一行,包括n,x和y(均为整数)。
【输出】
输出也仅一行,剩下的苹果个数。
【输入样例】
10 4 9
【输出样例】
7
【算法分析】
虫子x小时吃掉一个苹果则可知y小时可以吃掉 个,但是如果求得的数为小数就说明存在一个苹果已经被虫子吃但是未吃完,已经是不完整的。则应该对
进行向上取整,然后使用n减掉取整得到的数,但是此题中需要判断求得结果的正负。
【源代码】
方法一:使用if....else....语句进行判断
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n, x, y, rest;
cin >> n >> x >> y;
rest = ( n - ceil( y / x ) );
if( rest < 0 )
cout << 0;
else
cout << rest;
return 0;
}
方法二:使用max(int a,int b);进行判断
#include<bits/stdc++.h>
using namespace std;
int main()
{
double n, x, y, rest;
cin >> n >> x >> y;
rest = ( n - ceil( y / x ) );
cout << max(0,int(rest));
return 0;
}
【知识点小结】
知识点一:
ceil( )
C++<cmath>库中提供的函数 ,ceil( )可以进行向上取整例如:ceil(3.5)=4; ceil(-3.5) =-3;
知识点二:max(int a, int b);
此函数的功能为求两个数中最大的值进行输出,max(a,b)函数中的两个参数必须为int型,例如:max(0,2)=2; max(0,-1)=0;