【发布时间】:2019-09-23 16:24:11
【问题描述】:
class Solution {
public:
double myPow(double x, int n) {
double result=1;
bool neg=false;
if(n<0)
{
n = -1*n;
neg=true;
}
for(int i =1; i<=n;i++)
{
result = x*result;
}
if(neg)
{
result = 1/result;
}
return result;
}
};
【问题讨论】:
-
它需要
n乘法有更快的算法 -
你可能会做类似
pow(x, 4)->pow(pow(x, 2), 2),而不是x * x * x * x。 -
嗯,它肯定比标准的
pow慢 -
在 C++ 中,除了方法之外,您还可以拥有独立的函数
-
除了已经说过的内容之外,您的代码很糟糕,因为您正在重新发明轮子。
std::pow可以满足您的需要,除非您有充分的理由自己编写,否则您不应该(尽管我认为将其作为家庭作业任务就足够了;)。