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

LeetCode 50 — Pow(x, n)(C++ Java Python)

2014-03-21 11:04 399 查看
题目:http://oj.leetcode.com/problems/powx-n/

Implement pow(x, n).

题目翻译:

        实现pow(x,n)。
分析:

        二分。

C++实现:

class Solution {
public:
double pow(double x, int n) {
if(n < 0)
{
return 1.0 / power(x, -n);
}
else
{
return power(x, n);
}
}

double power(double x, int n) {
if(n == 0)
{
return 1;
}

double tmp = pow(x, n / 2);

if(n & 0x01)
{
return tmp * tmp * x;
}
else
{
return tmp * tmp;
}
}
};

Java实现:

public class Solution {
public double pow(double x, int n) {
if (n < 0) {
return 1.0 / power(x, -n);
} else {
return power(x, n);
}
}

public double power(double x, long n) {
if (n == 0) {
return 1;
}

double tmp = power(x, n / 2);

if ((n & 0x01) == 1) {
return tmp * tmp * x;
} else {
return tmp * tmp;
}
}
}

Python实现:

class Solution:
# @param x, a float
# @param n, a integer
# @return a float
def pow(self, x, n):
if n < 0:
return 1.0 / self.power(x, -n)
else:
return self.power(x, n)

def power(self, x, n):
if n == 0:
return 1

tmp = self.power(x, n / 2)

if n & 0x01 == 1:
return tmp * tmp * x
else:
return tmp * tmp

        感谢阅读,欢迎评论!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LeetCode