常用函数¶
函数,是一段完成特定任务的代码。
给它起个名字,需要时用这个名字调用,就能执行这段代码。
C++ 标准库提供了一些常用函数,比如取绝对值、取整、开平方等。
绝对值¶
整数的绝对值
使用 abs,头文件 <cstdlib>。
小数的绝对值
使用 fabs,头文件 <cmath>。
小数的绝对值,先统一用 fabs。
向上取整¶
使用 ceil,头文件 <cmath>。
向上取整,就是找不小于这个数的最小整数。
注意:向上是数轴上往右,不是把绝对值变大。已经是整数,就不变。
不够一份,也要算一份
13 个孩子坐车,每辆车最多坐 5 人,至少需要 3 辆。
不能写 ceil(a / b),整数除法已经把小数部分舍去了。
整数分组,也常用下面的写法:
这里要求 a >= 0、b > 0,而且 a + b - 1 不能超出类型范围。
大整数转成浮点数可能损失精度,整数问题能用整数运算,就用整数运算。
向下取整¶
使用 floor,头文件 <cmath>。
向下取整,就是找不大于这个数的最大整数。
注意:负数向下取整,与直接转成 int 不一样。
四舍五入¶
使用 round,头文件 <cmath>。
取最近的整数,正好在两个整数中间时,取远离 0 的那个。
ceil、floor、round 得到的是整数值,但返回类型仍是浮点类型。
幂运算¶
使用 pow,头文件 <cmath>。
注意:^ 是按位异或,不是乘方。
pow 是浮点运算,不适合代替所有精确的整数幂运算。求平方,直接写 x * x 就行。
开平方¶
使用 sqrt,头文件 <cmath>。
在这里,我们只处理非负数。
开平方的结果可能是小数,存进 int 会舍去小数部分。
交换两个变量¶
使用 swap,交换两个变量的值。
较大值与较小值¶
使用 max、min,头文件 <algorithm>。
这里的 a、b 类型要一致。max、min 只返回较大值、较小值,不会交换或修改原变量。