cmath库里有pow函数,这个函数在图形处理方面上经常用到,但是如果让你自己写这个函数,就不一定能写出来了,本期文章我就带大家写pow函数
源码:
double factorial(int n) {if (n == 0) return 1;double result = 1;for (int i = 1; i <= n; ++i) {result *= i;}return result;
}double explr(double x) {double sum = 1.0;  // 级数从 1 开始  double term = 1.0; // 初始化第一个项  for (int n = 1; ; ++n) {term *= x / n; // 计算当前项 x^n / n!  sum += term;   // 累加到总和  // 当当前项的绝对值小于设定的精度阈值时停止  if (std::abs(term) < 1e-10) {break;}}return sum;
}
double pq(double x, int s) {double rt = 1; // 初始结果设为1  for (int i = 0; i < s; i++) {rt *= x; // 乘以 x, s 次  }return rt;
}double powt(double x, double y) {// 处理负幂的情况  if (y < 0) {x = 1 / x;  // 将 x 取倒数  y = -y;     // y 取绝对值  }// 如果 y 是整数  if (y == (int)y) {return pq(x, (int)y);}// 使用 exp 和 log 进行小数幂运算  return explr(y * log(x));
}
这次我是免费开源,机会可没这么多哦。