C++中的数学函数

注意

C++提供了很多实用的数学函数,如果要使用先添加头文件<cmath>或<math.h>

或者直接使用#include<bits/stdc++.h>即可

一、平方、开平方

exp(x);    //求常数e的x次方
 
pow(x, y);    //求x的y次方
 
sqrt(x);    //开平方

二、对数

log(x);    //求e为底的对数 ln
 
log10(x);    //求10为底的对数 lg
 
log(y)/log(x);    //求x为底的y的对数

三、绝对值

int abs(x);    //整数型的绝对值
 
double fabs(double x);    //浮点型的绝对值

四、取整

ceil(x);    //向上取整 返回的是大于或等于x的最小整数
 
floor(x);    //向下取整 返回的是小于或等于x的最大整数
 
fix(x);    //朝零方向取整
 
round(x);    //四舍五入到最近的整数
 
//使用round保留2位小数
double num = 3.1415926;
double roundedNum = round(num * 100) / 100;
cout << roundedNum << endl;     //输出 3.14

五、取余、取小数

m = fmod (x, y);    //返回两参数相除的余数
 
f = modf (x, * iptr);    //小数部分返回给f,整数部分的指针指向iptr
f = modf (x, & a);    //小数部分返回给f,整数部分为a

六、三角函数、反三角函数

//三角函数
sin(x);    //正弦
cos(x);    //余弦。cos(π)=-1,故 π = acos(-1)
tan(x);    //正切
 
//反三角函数
asin(x);    //反正弦 [−π/2, π/2]
acos(x);    //反余弦 [0, π]
atan(x);    //反正切(主值)   [−π/2, π/2]
atan2(x);    //反正切(整圆值) [−π, π]

代码实操

代码

#include <iostream>
#include <cmath> // 包含数学函数的头文件

using namespace std;

int main() {
    // 绝对值函数
    int x = -10;
    int abs_x = abs(x); // abs_x = 10
    cout << "abs(-10) = " << abs_x << endl;

    // 平方根函数
    double y = 25.0;
    double sqrt_y = sqrt(y); // sqrt_y = 5.0
    cout << "sqrt(25.0) = " << sqrt_y << endl;

    // 次方函数
    double base = 2.0;
    double exponent = 3.0;
    double pow_result = pow(base, exponent); // pow_result = 8.0
    cout << "pow(2.0, 3.0) = " << pow_result << endl;

    // 自然对数函数
    double z = 10.0;
    double log_z = log(z); // log_z ≈ 2.30259
    cout << "log(10.0) = " << log_z << endl;

    // 底数为 10 的对数函数
    double log10_z = log10(z); // log10_z ≈ 1.0
    cout << "log10(10.0) = " << log10_z << endl;

    // 正弦函数(角度为弧度制)
    double angle = 0.5;
    double sin_angle = sin(angle); // sin_angle ≈ 0.479426
    cout << "sin(0.5) = " << sin_angle << endl;

    // 余弦函数(角度为弧度制)
    double cos_angle = cos(angle); // cos_angle ≈ 0.877583
    cout << "cos(0.5) = " << cos_angle << endl;

    // 正切函数(角度为弧度制)
    double tan_angle = tan(angle); // tan_angle ≈ 0.546302
    cout << "tan(0.5) = " << tan_angle << endl;

    // 反正弦函数(返回值是弧度制的角度)
    double asin_value = asin(sin_angle); // asin_value ≈ 0.5
    cout << "asin(0.479426) = " << asin_value << " rad" << endl;

    // 反余弦函数(返回值是弧度制的角度)
    double acos_value = acos(cos_angle); // acos_value ≈ 0.5
    cout << "acos(0.877583) = " << acos_value << " rad" << endl;

    // 反正切函数(返回值是弧度制的角度)
    double atan_value = atan(tan_angle); // atan_value ≈ 0.5
    cout << "atan(0.546302) = " << atan_value << " rad" << endl;

    // 反正切函数,根据两个参数的比值确定象限
    double y1 = 1.0, x1 = 1.0;
    double atan2_value = atan2(y1, x1); // atan2_value ≈ 0.785398
    cout << "atan2(1.0, 1.0) = " << atan2_value << " rad" << endl;

    // 双曲正弦函数
    double sinh_value = sinh(angle); // sinh_value ≈ 0.521095
    cout << "sinh(0.5) = " << sinh_value << endl;

    // 双曲余弦函数
    double cosh_value = cosh(angle); // cosh_value ≈ 1.12763
    cout << "cosh(0.5) = " << cosh_value << endl;

    // 双曲正切函数
    double tanh_value = tanh(angle); // tanh_value ≈ 0.462117
    cout << "tanh(0.5) = " << tanh_value << endl;

    // 向上取整函数
    double ceil_value = ceil(2.3); // ceil_value = 3.0
    cout << "ceil(2.3) = " << ceil_value << endl;

    // 向下取整函数
    double floor_value = floor(2.7); // floor_value = 2.0
    cout << "floor(2.7) = " << floor_value << endl;

    // 四舍五入函数
    double round_value = round(2.5); // round_value = 3.0
    cout << "round(2.5) = " << round_value << endl;

    return 0;
}

运行结果

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值