Leetcode 372. Super Pow (Medium) (cpp)

来源:互联网 发布:ubuntu wubi安装教程 编辑:程序博客网 时间:2024/05/11 12:34

Leetcode 372. Super Pow (Medium) (cpp)

Tag: Math

Difficulty: Medium


/*372. Super Pow (Medium)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.Example1:a = 2b = [3]Result: 8Example2:a = 2b = [1,0]Result: 1024*/class Solution {public:int superPow(int a, vector<int>& b) {if (a % 1337 == 0) return 0;int p = 0;for (int i : b) p = (p * 10 + i) % 1140;if (p == 0) p += 1140;return power(a, p, 1337);}int power(int x, int n, int mod) {int ret = 1;for (x %= mod; n; x = x * x % mod, n >>= 1) if (n & 1) ret = ret * x % mod;return ret;}};


0 0