Leetcode刷题Python50. Pow(x, n)
Posted Better Bench
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python50. Pow(x, n)相关的知识,希望对你有一定的参考价值。
LeetCode50. Pow(x, n)
1 题目
实现 Pow(x, n), 即计算 x 的整数 n 次幂函数(即, 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
-104 <= xn <= 104
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/powx-n
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2 解析
递归分治法,如果n是1,则返回1,如果是负数,就是求正的分之一,如果是正数,分为两种情况,是奇数,拆出一个x出来,剩余的n-1次幂是偶数继续递归。是偶数,分为两部分乘积,对n对半去递归求解。例如求 x 4 x^4 x4拆分为 x 2 × x 2 x^2 × x^2 x2×x2。
3 Python实现
class Solution:
def myPow(self, x: float, n: int) -> float:
if n==0:
return 1
if n<0:
return 1 / self.myPow(x,-n)
if n%2:
return x*self.myPow(x,n-1)
return self.myPow(x*x,n/2)
以上是关于Leetcode刷题Python50. Pow(x, n)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):数学类:第50题:Pow(x, n):实现 pow(x, n) ,即计算 x 的 n 次幂函数。