求x的n次方,我们需要考虑以下特性:
- 0的n次方为0
- x的负数次方等于x的正数次方的倒数
考虑全面后就可以开始编码:
//
// Created by jt on 2020/9/3.
//
class Solution {
public:
/**
*
* @param x double浮点型
* @param n double浮点型
* @return double浮点型
*/
double pow(double x, double n) {
// write code here
if (x == 0) return 0;
if (n >= 0)
return divideAndConquer(x, n);
else
return 1 / divideAndConquer(x, -n);
}
private:
double divideAndConquer(double x, int n) {
if (n == 0) return 1;
double part = divideAndConquer(x, n/2);
if (n % 2 == 0)
return part * part;
else
return x * part * part;
}
};
京公网安备 11010502036488号