在日常的刷题中,会经常涉及到数字的运算。 c++ 中提供了较为方便的库函数,可以方便我们快速的解题。

数学函数

  学会分支语句以后,我们其实已经可以解决很多问题了,但是在解决问题的时候我们要尽量避免的一件事就是重复造轮子(当然为了锻炼自己编程能力的除外),也就是说我们要尽量使用语言本身环境中已经写好的东西,比如C++中的库和库中的函数,这样会节省你很多时间,而且会增加代码的可读性。

  举个简单的例子,你想求一个数a的b次幂,如果是你自己写你需要把a自乘b次,如果b的次数过多,代码会显得很不美观而且很繁琐,但是用函数去解决的话可以使用power(a, b)函数来直接产生结果,而且他还可以用于b不是整数或为负数的情况。总的来说,使用库中已有的函数好处有很多。

  数学函数是在cmath头文件中的,所以在使用时要用#include 来导入。我们常使用万能头文件包含了camth头文件。

  数学函数可以大体划分为三类:三角函数、指数函数和功能函数(求最大值、最小值、绝对值等)。

求两个数最大最小
1、max(a,b);
2、min(a,b);

取整
1、向下取整floor()
2、向上取整ceil()
3、四舍五入取整round()

绝对值
1、求绝对值 abs(int)
2、求绝对值 fabs(double)
3、求复数的绝对值 double cabs(struct complex znum);

指数与对数
1、double exp (double);
2、double sqrt (double);开平方
3、double log (double); 以e为底的对数
4、double log10 (double);以10为底的对数
5、double pow(double x, double y);计算以x为底数的y次幂
6、float powf(float x, float y); 功能与pow一致,只是输入与输出皆为浮点数

三角函数
1、double sin (double);正弦
2、double cos (double);余弦
3、double tan (double);正切

反三角函数
1、double asin (double); 结果介于[-PI/2, PI/2]
2、double acos (double); 结果介于[0, PI]
3、double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]
4、double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]

双曲三角函数
1、double sinh (double);
2、double cosh (double);
3、double tanh (double);