372. Super Pow(LeetCode)
2016-11-10 17:30
309 查看
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 = 2
b = [3]
Result: 8
Example2:
a = 2
b = [1,0]
Result: 1024
思路:把数字b分拆成b’ × 10 + d,其中d为b的个位
Example1:
a = 2
b = [3]
Result: 8
Example2:
a = 2
b = [1,0]
Result: 1024
思路:把数字b分拆成b’ × 10 + d,其中d为b的个位
class Solution { private: const int BASE = 1337; /* a ^ d mod 1337, 0 <= d < 10 */ int digitPow(int a, int d) { a %= BASE; int result = 1; for(int i=0; i<d; ++i) { result = (result * a) % BASE; } return result; } public: /* a ^ b mod 1337, b is an extremely large positive integer */ int superPow(int a, vector<int>& b) { if(b.empty()) return 1; int d = b.back(); b.pop_back(); return (digitPow(digitPow(superPow(a, b), 10) * digitPow(a, d), 1)); } };
相关文章推荐
- LeetCode 372 Super Pow
- [java][leetcode 372]Super Pow
- LeetCode 372. Super Pow (快速幂取模)
- LeetCode 第 372 题 (Super Pow)
- LeetCode 第 372 题 (Super Pow)
- [leetcode-372]Super Pow(java)
- Leetcode (372) Super Pow
- LeetCode 372 Super Pow
- Leetcode 372. Super Pow (Medium) (cpp)
- leetcode_372. Super Pow ? 待解决
- Math-372-Super Pow
- LeetCode Super Pow(快速求幂算法)
- LeetCode 372. Super Pow解题思路(超详细)
- leetcode_372. Super Pow
- [Leetcode] 372. Super Pow 解题报告
- leetcode:数学:spuer pow(372)
- LeetCode "Super Pow"
- LeetCode: Super Pow
- LeetCode Super Pow详解
- leetcode Super Pow