Implement pow(x, n).
Notice
You don't need to care about the precision of your answer, it's acceptable if the expected answer and your answer 's difference is smaller than 1e-3
.
Example
Pow(2.1, 3) = 9.261Pow(0, 1) = 0Pow(1, 0) = 1
LeetCode上的原题,请参见我之前的博客。
解法一:
class Solution {public: /** * @param x the base number * @param n the power number * @return the result */ double myPow(double x, int n) { if (n == 0) return 1; double half = myPow(x, n / 2); if (n % 2 == 0) return half * half; else if (n > 0) return half * half * x; else return half * half / x; }};
解法二:
class Solution {public: /** * @param x the base number * @param n the power number * @return the result */ double myPow(double x, int n) { if (n == 0) return 0; if (n == 1) return x; if (n == -1) return 1 / x; return myPow(x, n / 2) * myPow(x, n - n / 2); }};