作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。
会一些的技术:数据分析、算法、SQL、大数据相关、python
欢迎加入社区:码上找工作
作者专栏每日更新:
LeetCode解锁1000题: 打怪升级之旅
python数据分析可视化:企业实战案例
备注说明:方便大家阅读,统一使用python,带必要注释,公众号 数据分析螺丝钉 一起打怪升级
题目描述
实现 pow(x, n)
,即计算 x
的 n
次幂函数(即,(x^n))。
输入格式
- x:浮点数,底数。
- n:整数,指数。
输出格式
- 返回
x
的n
次幂。
示例
示例 1
输入: x = 2.00000, n = 10
输出: 1024.00000
示例 2
输入: x = 2.10000, n = 3
输出: 9.26100
方法一:快速幂(递归)
解题步骤
- 基本情况:处理
n
为0和负数的情况。 - 递归处理:利用快速幂算法,分治思想将问题规模减半,利用 (x^n = (x{n/2})2) 的性质来减少计算次数。
完整的规范代码
def myPow(x, n):
"""
使用快速幂算法(递归版本)来计算 x 的 n 次幂
:param x: float, 底数
:param n: int, 指数
:return: float, x 的 n 次幂
"""
if n == 0:
return 1
if n < 0:
x = 1 / x
n = -n
return myPow(x*x, n//2) if n % 2 == 0 else x * myPow(x*x, (n-1)//2)
# 示例调用
print(myPow(2.00000, 10)) # 输出: 1024.00000
print(myPow(2.10000, 3)