:D 正在获取一言...

关于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

posted @ 2025-09-04 01:31  呱唧呱唧呱呱呱  阅读(70)  评论(0)    收藏  举报