为什么这段代码不直接使用 C++ 幂函数?有人可以帮助我使用此代码中的电源函数吗?

Why doesn't this code use the C++ power function directly? Can someone help me with the power function in this code?

本文关键字:函数 代码 电源 帮助 段代码 C++ 为什么      更新时间:2023-10-16

这个问题是输出单个整数,计算出可能的组合数:

int power(int a, int n)
{
  if (n == 0)
    return 1;
  // else
  if (n % 2 == 0) {
    int temp = power(a, n / 2);
    return temp * temp;
  }
  // else
  return a * power(a, n - 1);
}

此函数使用一种称为平方幂的技术

这是评估整型参数幂的特别有效的方法。标准 C 函数使用浮点参数,即使浮点参数表示整数,C 标准也不需要确切的结果。

C++,尽管您可能可以依赖接受整型参数的重载之一std::pow并转换结果,具体取决于您进行必要的大小检查。同样,即使是C++标准也不要求返回最佳结果(参见。 std::sqrt在IEEE754(下(,尽管人们可以合理地认为一个不返回积分参数正确结果的std::pow函数是有缺陷的。