您的位置:首页 > 其它

[LintCode] Pow(x, n) 求x的n次方

2016-07-17 23:54 399 查看
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
.

Have you met this question in a real interview?

Yes

Example

Pow(2.1, 3) = 9.261
Pow(0, 1) = 0
Pow(1, 0) = 1


LeetCode上的原题,请参见我之前的博客Pow(x, n)

解法一:

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);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: