|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 糖逗 于 2020-4-29 21:09 编辑
题目描述:
- 你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。
- 示例 1:
- 输入: a = 2, b = [3]
- 输出: 8
- 示例 2:
- 输入: a = 2, b = [1,0]
- 输出: 1024
- 来源:力扣(LeetCode)
- 链接:https://leetcode-cn.com/problems/super-pow
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码
- int base = 1337;
- int quick_pow(int a, int k) {
- if (k == 0) return 1;
- if (k % 2 == 1) {
- return (a%base * quick_pow(a, k - 1)) % base;//这里a的后面一定要加%base
- } else {
- int sub = quick_pow(a, k / 2);
- return (sub * sub) % base;
- }
- }
- int superPow(int a, vector<int>& b) {
- if (b.empty()) return 1;
- int last = b.back();
- b.pop_back();
- int part1 = quick_pow(a, last);
- int part2 = quick_pow(superPow(a, b), 10);
- return (part1 * part2)%base;
- }
复制代码
参考链接:https://leetcode-cn.com/problems ... -fa-xiang-jie-by-l/ |
|