LeetCode题目50:Pow(x,n) python5种算法实现

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。
会一些的技术:数据分析、算法、SQL、大数据相关、python
欢迎加入社区:码上找工作
作者专栏每日更新:
LeetCode解锁1000题: 打怪升级之旅
python数据分析可视化:企业实战案例
备注说明:方便大家阅读,统一使用python,带必要注释,公众号 数据分析螺丝钉 一起打怪升级

题目描述

实现 pow(x, n),即计算 xn 次幂函数(即,(x^n))。

输入格式
  • x:浮点数,底数。
  • n:整数,指数。
输出格式
  • 返回 xn 次幂。

示例

示例 1
输入: x = 2.00000, n = 10
输出: 1024.00000
示例 2
输入: x = 2.10000, n = 3
输出: 9.26100

方法一:快速幂(递归)

解题步骤
  1. 基本情况:处理 n 为0和负数的情况。
  2. 递归处理:利用快速幂算法,分治思想将问题规模减半,利用 (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)
  • 28
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据分析螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值