您的位置:首页 > 编程语言 > C语言/C++

LeetCode-Pow(x, n)-解题报告

2015-07-08 21:02 344 查看
原题链接 https://leetcode.com/problems/powx-n/

Implement pow(x, n). 

以前在算法书中看到过一个,将指数n写成2进制的情况。

比如2^5 = 2^101 = 2^3 * 2^1

class Solution {
public:
double myPow(double x, int n) {
double ans = 1;
bool flag = true;
long long p = n;
if (p < 0)flag = false, p = abs(p);
while (p)
{
if (p & 1)ans *= x;
x *= x;
p >>= 1;
}
return flag ? ans : 1.0 / ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ leetcode