📜  c++ 向上取整 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:48.765000             🧑  作者: Mango

C++ 向上取整

在实际编程中,经常会遇到需要向上取整的情况,比如计算货币交易金额、计算分页页数等。C++ 提供了几种方法实现向上取整,本篇文章将为大家介绍其中的几种。

方法一:使用 ceil 函数
#include <cmath>

double number = 3.1415926;
double ceilResult = ceil(number); // 4

上述代码中,ceil 函数可以将参数向上取整,并返回取整后的结果。需要注意的是,ceil 函数的参数类型为 double

方法二:手动实现向上取整
#include <iostream>

int ceilNumber(int num, int divisor) {
    if(num % divisor == 0) {
        return num / divisor;
    }
    return num / divisor + 1;
}

int main() {
    int num = 10;
    int divisor = 3;
    int ceilResult = ceilNumber(num, divisor); // 4
    std::cout << ceilResult << std::endl;

    return 0;
}

上述代码中,ceilNumber 函数可以实现对 num 参数按照 divisor 参数进行向上取整。如果 num 能够被 divisor 整除,直接返回结果;否则返回商加 1。

方法三:使用向下取整实现向上取整
#include <iostream>
#include <cmath>

int ceilNumber(int num, int divisor) {
    return (num + divisor - 1) / divisor;
}

int main() {
    int num = 10;
    int divisor = 3;
    int ceilResult = ceilNumber(num, divisor); // 4
    std::cout << ceilResult << std::endl;

    return 0;
}

上述代码中,ceilNumber 函数使用向下取整的方法实现向上取整。将 num 参数加上 divisor - 1 后,再将结果除以 divisor 即可实现向上取整的效果。

总结

本文介绍了 C++ 中实现向上取整的三种方法,分别为使用 ceil 函数、手动实现向上取整、使用向下取整实现向上取整。根据实际场景选择适合的方法,可以提高效率和代码可读性。