题意:实现pos(x, n)功能, 其中x为double类型,n为int类型
附上代码:
1 class Solution { 2 public: 3 double pow(double x, int n) { 4 // handle several particular test cases 5 if (n == 0) return 1; 6 if (x == 1.0) return x; 7 if (x == -1.0) return n % 2 == 1 ? -1 : 1; 8 // "n" is positive or negative ? 9 bool flag = n > 0 ? true : false;10 n = abs(n);11 // holds the answer12 double ans = 1.0;13 while (n) {14 if (n % 2) ans *= x;15 x *= x;16 n /= 2;17 } 18 if (flag) return ans; 19 else return 1.0 / ans;20 }21 };