LeeCode题库第五十题
50.Pow(x,n)
项目场景:
实现 pow(x, n) ,即计算 x
的整数 n
次幂函数(即,xn
)。
示例 1:
输入:x = 2.00000, n = 10 输出:1024.00000
示例 2:
输入:x = 2.10000, n = 3 输出:9.26100
示例 3:
输入:x = 2.00000, n = -2 输出:0.25000 解释:2-2 = 1/22 = 1/4 = 0.25
提示:
-100.0 < x < 100.0
-231 <= n <= 231-1
n
是一个整数- 要么
x
不为零,要么n > 0
。 -104 <= xn <= 104
问题描述
这里借用灵神的图灵神题解,每个幂相当于不断相乘一、二、四、八次方,但不是每一个都要去乘,可以联想二进制8421,此时二进制位为1时说明要成此时x的幂,之后x每轮翻倍,循环结束后返回即可。
class Solution:
def myPow(self, x: float, n: int) -> float:
ans=1
if n<0:
n=-n
x=1/x
while n:
if n&1:
ans*=x
x*=x
n>>=1
return ans
本题提交情况。
以上为本篇文章的全部内容,感谢你抽出宝贵的时间阅读这篇文章。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!