C / C + + 上取整与下取整 C/C++上取整与下取整 C/C++上取整与下取整
int a, b;
// 求a/b的上取整和下取整结果
一、手动实现
-
下取整:C++中整数的除法默认是下取整的,直接除即可。
cout << a/b << endl;
-
上取整 = { a 能整除 b 时 : a / b a 不能整除 b 时 : a / b + 1 = > ( a − 1 ) / b + 1 o r ( a + b − 1 ) / b 上取整=\begin{cases} a能整除b时: a/b\\ \\ a不能整除b时: a/b+1 \end{cases} => (a-1)/b+1\ \ or \ \ (a+b-1)/b 上取整=⎩ ⎨ ⎧a能整除b时:a/ba不能整除b时:a/b+1=>(a−1)/b+1 or (a+b−1)/b
-
上取整公式
cout << (a-1)/b+1 << endl;
二、math.h 数学库
-
下取整:
double floor(double x)
cout << floor((double)a/b) << endl;
-
上取整:
double ceil(double x)
cout << ceil((double)a/b) << endl;
补充
四舍五入:double round(double x)
cout << round((double)a/b) << endl;