求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; } };