372. 超级次方(python3)
1100
2019.12.29
发布于 未知归属地

描述

你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。
示例

输入: a = 2, b = [3]
输出: 8

输入: a = 2, b = [1,0]
输出: 1024

解题思路

  • 例如 a=2b=[1,2,3],不能直接调用 2^123。
  • 2^123 = 2^100 * 2^20 * 2^32^100 = (2^10)^10
  • 所以,这是一道数学题。
Python
class Solution:
    def superPow(self, a: int, b: List[int]) -> int:
        r = 1
        for _b in b:
            r = pow(r, 10, 1337) * pow(a, _b, 1337) % 1337
        return r
评论 (0)