wk2 50. Pow(x, n)

来源:互联网 发布:js判断页面加载完毕 编辑:程序博客网 时间:2024/06/06 08:44

Difficulty: Medium

Implement pow(x, n).


class Solution {public:    double myPow(double x, int n) {        double ans=1;        long long n1=n;        if(n1==0 || x==1) return 1;        else if(x==-1) return n%2==0?1:-1;        else if(n1<0){            x=1.0/x;            n1*=-1;        }        for(long long i=0; i<n1; i++){            if(ans==0) return 0;            ans*=x;        }        return ans;    }};

定义long long int n1来存储指数部分,避免正负转换时溢出。

首先判断x是否为0、1、-1,指数是否为0的特殊情况,再进行迭代计算。计算中判断中间结果是否为0,为0可直接返回。


0 0
原创粉丝点击