• C++
  • C++常用的数学函数

  • @ 2024-12-28 11:12:24
  1. 绝对值函数 - absfabs
    • abs函数:用于求整数的绝对值。它定义在<cstdlib>头文件中。例如,int num=-5; int abs_num = abs(num);,这里abs_num的值为5。它的函数原型是int abs(int n);,只能用于整数类型。
    • fabs函数:用于求浮点数的绝对值。定义在<cmath>头文件中。例如,double num=-3.14; double fabs_num = fabs(num);fabs_num的值为3.14。函数原型是double fabs(double x);,可以处理floatdouble等浮点数类型。
  2. 幂函数 - pow
    • 用于计算一个数的幂次方。定义在<cmath>头文件中。例如,double result = pow(2, 3);,计算23次方,result的值为8。函数原型是double pow(double base, double exponent);base是底数,exponent是指数。需要注意的是,当底数为负数且指数为小数时,结果可能是未定义的。
  3. 平方根函数 - sqrt
    • 用于计算一个非负数的平方根。定义在<cmath>头文件中。例如,double num = 9; double sqrt_num = sqrt(num);sqrt_num的值为3。函数原型是double sqrt(double x);,参数x必须是非负的,否则会产生未定义行为(在某些实现中可能会返回nan - 非数字)。
  4. 三角函数 - sincostan
    • 这些函数用于计算三角函数值,都定义在<cmath>头文件中。
    • sin函数:用于计算正弦值。例如,double angle = 30.0 * 3.1415926/180.0; double sin_value = sin(angle);,这里先将角度30度转换为弧度(因为C++中的三角函数默认使用弧度制),然后计算正弦值。函数原型是double sin(double x);x是弧度值。
    • cos函数:用于计算余弦值。用法和sin类似,函数原型是double cos(double x);
    • tan函数:用于计算正切值。函数原型是double tan(double x);
  5. 反三角函数 - asinacosatan
    • 用于计算反三角函数值,定义在<cmath>头文件中。
    • asin函数:计算反正弦值。其结果是一个弧度值,范围在[-π/2,π/2]之间。函数原型是double asin(double x);x的取值范围是[-1,1],否则会产生未定义行为。
    • acos函数:计算反余弦值。结果范围在[0,π]之间,函数原型是double acos(double x);x取值范围也是[-1,1]
    • atan函数:计算反正切值。结果范围在(-π/2,π/2)之间,函数原型是double atan(double x);
  6. 对数函数 - loglog10
    • log函数:用于计算自然对数(以e为底)。定义在<cmath>头文件中。例如,double num = 2.71828; double log_num = log(num);,函数原型是double log(double x);x必须是大于0的数。
    • log10函数:用于计算以10为底的对数。例如,double num = 100; double log10_num = log10(num);log10_num的值为2。函数原型是double log10(double x);x同样必须大于0
  7. 取整函数 - ceilfloorround
    • 前面已经介绍过ceil(向上取整)和floor(向下取整)函数,它们都定义在<cmath>头文件中。
    • round函数:用于将浮点数四舍五入到最接近的整数。定义在<cmath>头文件中。例如,double num = 5.4; int round_num = round(num);round_num的值为5;如果num = 5.6,则round_num的值为6。函数原型是int round(double x);

2 条评论

  • @ 2024-12-28 11:18:30
    1. abs函数(求整数绝对值)
      • 示例代码
      #include <cstdlib>
      #include <iostream>
      int main() {
          int a = -7;
          int abs_a = abs(a);
          std::cout << "The absolute value of " << a << " is " << abs_a << std::endl;
          return 0;
      }
      
      • 解释
        • 首先,#include <cstdlib>是包含头文件,因为abs函数的声明在这个头文件中。
        • 定义一个整数变量a-7
        • 通过abs(a)调用abs函数来计算a的绝对值,结果存储在abs_a变量中。
        • 最后,使用std::cout输出结果,显示The absolute value of -7 is 7
    2. fabs函数(求浮点数绝对值)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double b = -3.14;
          double fabs_b = fabs(b);
          std::cout << "The absolute value of " << b << " is " << fabs_b << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件,因为fabs函数在这个头文件中声明。
        • 定义双精度浮点数b-3.14
        • 调用fabs(b)计算b的绝对值,结果3.14存储在fabs_b中。
        • 输出语句显示The absolute value of -3.14 is 3.14
    3. pow函数(幂运算)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double base = 3.0;
          double exponent = 2.0;
          double result = pow(base, exponent);
          std::cout << base << " to the power of " << exponent << " is " << result << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件用于pow函数。
        • 定义底数base3.0和指数exponent2.0
        • 通过pow(base,exponent)计算baseexponent次方,结果9.0存储在result中。
        • 输出语句显示3 to the power of 2 is 9
    4. sqrt函数(平方根运算)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double c = 16.0;
          double sqrt_c = sqrt(c);
          std::cout << "The square root of " << c << " is " << sqrt_c << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件,因为sqrt函数在其中。
        • 定义变量c16.0
        • 调用sqrt(c)计算c的平方根,结果4.0存储在sqrt_c中。
        • 输出语句显示The square root of 16 is 4
    5. sin函数(正弦函数)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double angle = 45.0 * 3.1415926 / 180.0;  // 将角度转换为弧度
          double sin_value = sin(angle);
          std::cout << "The sine of 45 degrees is " << sin_value << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件,因为sin函数在此头文件中。
        • 先将45度转换为弧度(因为sin函数的参数要求是弧度),存储在angle变量中。
        • 调用sin(angle)计算正弦值,结果存储在sin_value中。
        • 输出语句显示The sine of 45 degrees is 0.707107(近似值)。
    6. cos函数(余弦函数)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double angle = 60.0 * 3.1415926 / 180.0;
          double cos_value = cos(angle);
          std::cout << "The cosine of 60 degrees is " << cos_value << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件。
        • 60度转换为弧度后存储在angle变量。
        • 调用cos(angle)计算余弦值,结果存储在cos_value中。
        • 输出语句显示The cosine of 60 degrees is 0.5(近似值)。
    7. tan函数(正切函数)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double angle = 30.0 * 3.1415926 / 180.0;
          double tan_value = tan(angle);
          std::cout << "The tangent of 30 degrees is " << tan_value << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件。
        • 30度转换为弧度存储在angle变量。
        • 调用tan(angle)计算正切值,结果存储在tan_value中。
        • 输出语句显示The tangent of 30 degrees is 0.57735(近似值)。
    8. log函数(自然对数)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double d = 2.71828;
          double log_d = log(d);
          std::cout << "The natural logarithm of " << d << " is " << log_d << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件。
        • 定义变量d为自然常数e的近似值2.71828
        • 调用log(d)计算自然对数,结果存储在log_d中。
        • 输出语句显示The natural logarithm of 2.71828 is 1(近似值)。
    9. log10函数(以10为底的对数)
      • 示例代码
      #include <cmath>
      #include <iostream>
      int main() {
          double e = 100.0;
          double log10_e = log10(e);
          std::cout << "The logarithm base 10 of " << e << " is " << log10_e << std::endl;
          return 0;
      }
      
      • 解释
        • 包含<cmath>头文件。
        • 定义变量e100.0
        • 调用log10(e)计算以10为底e的对数,结果2.0存储在log10_e中。
        • 输出语句显示The logarithm base 10 of 100 is 2
    10. ceil函数(向上取整)
    • 示例代码
    #include <cmath>
    #include <iostream>
    int main() {
        double f = 4.1;
        double ceil_f = ceil(f);
        std::cout << "The ceiling of " << f << " is " << ceil_f << std::endl;
        return 0;
    }
    
    • 解释
      • 包含<cmath>头文件。
      • 定义变量f4.1
      • 调用ceil(f)向上取整,结果5.0存储在ceil_f中。
      • 输出语句显示The ceiling of 4.1 is 5
    1. floor函数(向下取整)
    • 示例代码
    #include <cmath>
    #include <iostream>
    int main() {
        double g = 4.9;
        double floor_g = floor(g);
        std::cout << "The floor of " << g << " is " << floor_g << std::endl;
        return 0;
    }
    
    • 解释
      • 包含<cmath>头文件。
      • 定义变量g4.9
      • 调用floor(g)向下取整,结果4.0存储在floor_g中。
      • 输出语句显示The floor of 4.9 is 4
    1. round函数(四舍五入)
    • 示例代码
    #include <cmath>
    #include <iostream>
    int main() {
        double h = 5.4;
        int round_h = round(h);
        std::cout << "The rounded value of " << h << " is " << round_h << std::endl;
        return 0;
    }
    
    • 解释
      • 包含<cmath>头文件。
      • 定义变量h5.4
      • 调用round(h)进行四舍五入,结果5存储在round_h中。
      • 输出语句显示The rounded value of 5.4 is 5
    • @ 2024-12-28 11:13:31
      1. 绝对值函数
        • abs函数(用于整数)
          • 示例代码:
          #include <cstdlib>
          #include <iostream>
          int main() {
              int num1 = -5;
              int abs_result1 = abs(num1);
              std::cout << "The absolute value of " << num1 << " is " << abs_result1 << std::endl;
              return 0;
          }
          
          • 解释:在这个示例中,首先包含了<cstdlib>头文件,因为abs函数的定义在这个头文件中。然后定义了一个整数num1-5,通过abs(num1)计算其绝对值,结果存储在abs_result1中,最后输出结果,显示The absolute value of -5 is 5
        • fabs函数(用于浮点数)
          • 示例代码:
          #include <cmath>
          #include <iostream>
          int main() {
              double num2 = -3.14;
              double fabs_result2 = fabs(num2);
              std::cout << "The absolute value of " << num2 << " is " << fabs_result2 << std::endl;
              return 0;
          }
          
          • 解释:这里包含了<cmath>头文件,因为fabs函数在其中定义。定义了一个双精度浮点数num2-3.14,使用fabs(num2)计算其绝对值,结果3.14存储在fabs_result2中并输出。
      2. 幂函数 - pow
        • 示例代码:
        #include <cmath>
        #include <iostream>
        int main() {
            double base = 2.0;
            double exponent = 3.0;
            double pow_result = pow(base, exponent);
            std::cout << base << " raised to the power of " << exponent << " is " << pow_result << std::endl;
            return 0;
        }
        
        • 解释:包含<cmath>头文件后,定义了底数base2.0和指数exponent3.0。通过pow(base,exponent)计算2.03.0次方,结果8.0存储在pow_result中并输出,显示2 raised to the power of 3 is 8
      3. 平方根函数 - sqrt
        • 示例代码:
        #include <cmath>
        #include <iostream>
        int main() {
            double num3 = 9.0;
            double sqrt_result = sqrt(num3);
            std::cout << "The square root of " << num3 << " is " << sqrt_result << std::endl;
            return 0;
        }
        
        • 解释:在包含<cmath>头文件后,定义了一个数num39.0。使用sqrt(num3)计算其平方根,结果3.0存储在sqrt_result中并输出,显示The square root of 9 is 3
      4. 三角函数 - sin(以正弦函数为例)
        • 示例代码:
        #include <cmath>
        #include <iostream>
        int main() {
            double angle_in_degrees = 30.0;
            double angle_in_radians = angle_in_degrees * 3.1415926 / 180.0;
            double sin_result = sin(angle_in_radians);
            std::cout << "The sine of " << angle_in_degrees << " degrees is " << sin_result << std::endl;
            return 0;
        }
        
        • 解释:首先包含<cmath>头文件。因为C++中的三角函数使用弧度制,所以先将角度30.0度转换为弧度(通过angle_in_degrees * 3.1415926/180.0),得到angle_in_radians。然后使用sin(angle_in_radians)计算正弦值,结果存储在sin_result中并输出,显示The sine of 30 degrees is 0.5(近似值)。
      5. 反三角函数 - asin(以反正弦函数为例)
        • 示例代码:
        #include <cmath>
        #include <iostream>
        int main() {
            double value = 0.5;
            double asin_result = asin(value);
            double asin_result_in_degrees = asin_result * 180.0 / 3.1415926;
            std::cout << "The arcsine of " << value << " is " << asin_result_in_degrees << " degrees" << std::endl;
            return 0;
        }
        
        • 解释:包含<cmath>头文件后,定义了一个值value0.5。使用asin(value)计算反正弦值,得到的结果是弧度制的asin_result。然后将其转换为角度制(通过asin_result * 180.0/3.1415926),得到asin_result_in_degrees并输出,显示The arcsine of 0.5 is 30 degrees(近似值)。
      6. 对数函数 - log(以自然对数为例)
        • 示例代码:
        #include <cmath>
        #include <iostream>
        int main() {
            double num4 = 2.71828;
            double log_result = log(num4);
            std::cout << "The natural logarithm of " << num4 << " is " << log_result << std::endl;
            return 0;
        }
        
        • 解释:包含<cmath>头文件后,定义了一个数num42.71828(近似于自然常数e)。使用log(num4)计算其自然对数,结果存储在log_result中并输出,显示The natural logarithm of 2.71828 is 1(近似值)。
      7. 取整函数 - round(以四舍五入为例)
        • 示例代码:
        #include <cmath>
        #include <iostream>
        int main() {
            double num5 = 5.6;
            int round_result = round(num5);
            std::cout << "The rounded value of " << num5 << " is " << round_result << std::endl;
            return 0;
        }
        
        • 解释:包含<cmath>头文件后,定义了一个双精度浮点数num55.6。使用round(num5)对其进行四舍五入,结果6存储在round_result中并输出,显示The rounded value of 5.6 is 6
      • 1