您的位置:首页 > 编程语言 > Java开发

Leet Code 50 Pow(x, n) - 实现幂运算 - Java

2016-06-23 00:00 239 查看
摘要: Leet Code 50 Pow(x, n) - 实现幂运算 - Java

问题原始链接 https://leetcode.com/problems/powx-n

实现 Pow(x, n)。

思路:二分法。令 half = Pow(x, n/2),如果 n 为偶数,则结果为 half*half,如果n为奇数,则结果为 half*half*x。

public class Solution {
public static double myPow(double x, int n) {
if (x == 1 || n == 0) {
return 1;
}
if (x == 0) {
return 0;
}
if (n == 1) {
return x;
}

if (n > 0) {
double half = myPow(x, n / 2);
return (n & 1) == 1 ? half * half * x : half * half;
} else {
if (n == Integer.MIN_VALUE) {
return 1 / (myPow(x, Integer.MAX_VALUE) * x);
} else {
return 1 / myPow(x, Math.abs(n));
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息