关于ceil的使用知识
函数原型
double ceil(double x);
float ceil(float x);
long double ceil(long double x);
返回值特点
返回值类型与输入类型一致
对于整数输入,返回其本身
对于负数,如 ceil(-2.3) 会返回 -2.0(向上取整)
注意事项
与 floor 函数相反,floor 是向下取整
对于整数除法的向上取整,需注意:ceil(a/b) 不等同于 (a+b-1)/b(后者适用于整数运算)
使用时要注意数据类型转换,避免精度问题
就这题就明显直接ceil的使用方式了;
链接:https://ac.nowcoder.com/acm/problem/300546
来源:牛客网
题目描述
小红要挑战一只血量为 a 的怪物。小红的每次攻击能对怪物造成的伤害在 [l,r] 内浮动。当怪物的血量小于等于 0 时,怪物被消灭。
他想知道,在可能的最优情况下,他最少需要几次攻击能击杀怪物。
void solve() {
double a,l,r;
cin>>a>>l>>r;
int ans=ceil(a / r);
cout<<ans;
}
这个是对的
而下面这个就只能过30%;
void solve() {
int a,l,r;
cin>>a>>l>>r;
int ans=ceil(a / r);
cout<<ans;
}
可以很明显看见ceil只能用在浮点型才是准确的,在整数情况下还是推荐用(a+b-1)/b

浙公网安备 33010602011771号