[LeetCode 题解]: pow(x,n)

时间:2024-12-14 17:36:50

前言

 

【LeetCode 题解】系列传送门:  http://www.cnblogs.com/double-win/category/573499.html

1.题目描述

Implement pow(x, n).

2. 思路

题目很精简,不过需要考虑的情况很多,特别的需要注意 n可能为0 或者负数的情况。

另外,通过二分法,可以减少计算量。

3. 解法

class Solution {
public:
double pow(double x,int n)
{
if(0==x || 1.0==x || n==1) return x; //返回x的情况 if(0==n) return 1.0; // n的值为0 if(n<=0) // 当n为负数的时候,转化成正数,递归
{
x= 1.0/x;
n = -n;
} double ans=1.0;
double temp = pow(x,n/2); // 预操作,减少计算量
if(n%2)
ans = x*temp*temp; // 奇数情况
else
ans = temp*temp; // 偶数情况
return ans;
}
};
[LeetCode 题解]: pow(x,n)

作者:Double_Win

出处:   http://www.cnblogs.com/double-win/p/3707444.html

声明: 由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正~