2021-09-27:Pow(x, n)。实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n)。力扣50。

Posted 福大大架构师每日一题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-09-27:Pow(x, n)。实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n)。力扣50。相关的知识,希望对你有一定的参考价值。

2021-09-27:Pow(x, n)。实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n)。力扣50。

福大大 答案2021-09-27:

遍历n的二进制位。
时间复杂度:O(logn)。
空间复杂度:O(1)。

代码用golang编写。代码如下:

package main

import (
    "fmt"
    "math"
)

func main() {
    x := 5.3
    n := 10
    ret := myPow(x, n)
    fmt.Println(ret)
}

func pow(a int, n int) int {
    ans := 1
    t := a
    for n != 0 {
        if (n & 1) != 0 {
            ans *= t
        }
        t *= t
        n >>= 1
    }
    return ans
}

// x的n次方,n可能是负数
func myPow(x float64, n int) float64 {
    if n == 0 {
        return 1
    }
    pow := n + 1
    if n != math.MinInt64 {
        pow = n
    }
    t := x
    ans := 1.0
    for pow != 0 {
        if (pow & 1) != 0 {
            ans *= t
        }
        pow >>= 1
        t = t * t
    }
    if n == math.MinInt64 {
        ans *= x
    }
    if n < 0 {
        return 1.0 / ans
    } else {
        return ans
    }
}

执行结果如下:


左神java代码

以上是关于2021-09-27:Pow(x, n)。实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x**n)。力扣50。的主要内容,如果未能解决你的问题,请参考以下文章

50. Pow(x, n) 实现Pow(x,n)

Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。

Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。

实现 pow(x, n)

leetcode pow(x,n)实现

java 实现pow(x,n)