LeetCode 372 超级次方

本文探讨了一种名为'超级幂'的算法,使用Python实现时巧妙利用了指数幂的结合律。通过实例演示如何倒序计算并优化计算过程,确保结果对1337取模。核心在于理解幂运算的性质和Python pow函数的应用。
class Solution:
    # 算法真的是博大精深啊,瑞思拜
    def superPow(self, a: int, b: List[int]) -> int:
        MOD = 1337
        ans = 1
        # 倒序计算
        for e in reversed(b):
            # 这里用到指数幂的结合律,即a^1234=(a^1000)^1*(a^100)^2*(a^10)^3*(a^1)^4
            # 顺带直接取模
            ans = ans*pow(a,e,MOD)%MOD
            # 更新a的值,也直接取模
            a = pow(a,10,MOD)
        return ans

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hewesH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值