糖逗 发表于 2020-4-29 21:08:19

C++刷leetcode(372. 超级次方)【快速幂+取模】

本帖最后由 糖逗 于 2020-4-29 21:09 编辑

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

示例 1:

输入: a = 2, b =
输出: 8
示例 2:

输入: a = 2, b =
输出: 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/super-pow/solution/you-qian-ru-shen-kuai-su-mi-suan-fa-xiang-jie-by-l/

_2_ 发表于 2020-4-30 15:40:54

你回来啦

糖逗 发表于 2020-4-30 15:46:59

_2_ 发表于 2020-4-30 15:40
你回来啦

没有5月份要忙别的事,今天抓住4月份最后一天更几个新。6月中旬左右才回来耍{:10_250:}

_2_ 发表于 2020-4-30 16:52:43

糖逗 发表于 2020-4-30 15:46
没有5月份要忙别的事,今天抓住4月份最后一天更几个新。6月中旬左右才回来耍

哦{:10_257:}
页: [1]
查看完整版本: C++刷leetcode(372. 超级次方)【快速幂+取模】