C++ 为什么';t此代码使用C++;直接幂函数?有人能帮我解释一下这个代码中的幂函数吗?

C++ 为什么';t此代码使用C++;直接幂函数?有人能帮我解释一下这个代码中的幂函数吗?,c++,C++,此问题是输出单个整数,计算可能的组合数: 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函数

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

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< /Case>在IEEE74下),虽然有人可以合理地认为,对于整型参数,如果函数不能返回正确的结果,那么它就是有缺陷的。

我还不理解这个问题。:)好的,这就是问题:找到给定整数可以表示为unique的幂和的方法的数量,自然数你的问题是什么?这是个问题,为什么我们没有使用C++内置的POW函数来计算功率,但是谢谢,现在已经很清楚了。谢谢@Bathsheba,正如你所说的,它叫做平方幂,我看过它的文档,但是它有一个不同的公式,不同于我的代码行7中的代码,根据文档,它应该是int-temp=power(a**2,n/2);同样地,在奇数中也存在一些差异,它将充分等效。有多种方法可以对“平方指数”进行蒙皮。@AudityaPrratapa相同的算法可以用多种不同的方法进行编码。“不完全一样”并不意味着“错了”。是的,我知道了@MaxLanghof谢谢