且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

leetcode 50 Pow(x, n)

更新时间:2021-11-22 02:42:02

经蛋蛋介绍,才知道leetcode,看了一下,题目还不错,只要求写出部分代码,实现某一个功能,貌似比较接近公司的面试题。还有就是题目描述简洁,哈哈。

题目描述:Implement pow(xn).

C语言版:

测试数据比较严,还有负数,比较奇葩的是测试数据包含有INT_MIN,此处应注意它是不能通过改变符号转化为int型的,因为转化之后已经溢出int型

double myPow(double x, int n) {
    double s = 1.0;
    if (n < 0){
        if(n == INT_MIN)
            return 1.0 / (myPow(x, -(n + 1)) * x);
        return 1.0 / myPow(x, -n);
    } 
    while(n){
        if(n & 1) s *= x;
        x *= x;
        n = n >> 1;
    }
    return s;
}
python版:

python版简直就是开挂,一行代码搞定,人生苦短,唯有python~

class Solution:
    def pow(self, x, n):
        return x ** n