【leetcode】-372. Super Pow 超幂运算

Super Pow题目递归python代码题目Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array.Example 1:Input: a = 2, b = [3]Output: 8Example 2:Input: a = 2, b = [1,0]Output: 1
摘要由CSDN通过智能技术生成

题目

Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array.

Example 1:

Input: a = 2, b = [3]
Output: 8

Example 2:

Input: a = 2, b = [1,0]
Output: 1024

递归

大多数的问题都不是一眼直接看出来的,一般都要从基本的方法当中找规律。
1、处理数组指数
数组够长的话是不能直接转化成int的,所以要另想他法。
通常a^b = aa^(b-1),在数组中可类似计算。
2、求模
公式:(a
b)%MOD = (a%MOD)(b%MOD)%MOD
证明:
a = Ak +B;b = Ck + D
ab = ACk^2 + ADk + BCk +BD
a % k = B;b % k = D
B
D % k = (a % k)(b % k) % k

python代码

class Solution(object):
    def superPow(self, a, b):
        """
        :type a: int
        :type b: List[int]
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值