返回信息流照着答案写的 [em19]
过不了
这是一条镜像帖。来源:北邮人论坛 / cpp / #96989同步于 2017/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【问题】 Leetcode 50 pow(x,n) 求解啊
xqjia
2017/12/9镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
class Solution {
public:
double myPow(double x, int n) {
if(n==0) return 1;
if(n<0)
{
n=-n;
x=1/x;
}
return (n%2==0)? pow(x*x,n/2):x*pow(x*x,n/2);
}
};
那得怎么改下呢? ID不错
【 在 intmain (那又怎样) 的大作中提到: 】
: n = -n;
: 如果n = INT_MIN, 即-2147483648
: 则,-n超出int范围
//求不嘲讽
class Solution {
public:
double myPow(double x, int n) {
if(n == 0)
return 1;
else if(n < 0)
return 1.0 / myPow(x,-n - 1) / x;
else
{
if(x == 0 || x == 1)
return x;
else
{
vector<int> v;
while(n)
{
v.push_back(n % 2);
n /= 2;
}
int len = v.size();
double ans = 1;
for(int i = len - 1 ; i >= 0 ; i--)
{
ans = ans * ans;
if(v[i] == 1)
ans = ans * x;
}
return ans;
}
}
}
};
ugly corner case
【 在 intmain 的大作中提到: 】
: 加个特例处理,或者另写一个接受long参数的函数完成计算,在myPow里调用它