LeetCode第50.之Pow(x, n)

来源:互联网 发布:开源 数据上报 编辑:程序博客网 时间:2024/06/08 02:49

运用递归解,另外注意n的各种取值的情况。
C++代码:

#include <iostream>#include <limits>using namespace std;class Solution {public:    double myPow(double x, int n) {        if (0 == n)            return 1;        else if (n < 0)        {            //INT_MIN的绝对值比INT_MAX大一            if (INT_MIN == n)            {                return 1/(myPow(x, INT_MAX)*x);            }            return 1/myPow(x, -n);        }        else        {            double temp=  myPow(x, n>>1);            if (0 == n%2)            {                return temp*temp;            }            else                return temp*temp*x;        }    }};int main(){    Solution s;    cout<<s.myPow(0.3, 3);    cout<<endl;    return 0;}
0 0
原创粉丝点击