LeetCode 372. Super Pow 数学

Super Pow
这道题只要知道

a ^ 666888 = a ^ 666880 * a ^ 8

我们用一个powmod函数可以一边做power运算一遍取膜 🐸

class Solution {
    const int base = 1337;
    int powmod(int a, int b) {
        int result = 1;
        a %= base;
        for (int i = 0; i < b; i++)
            result = (result * a) % base;
        return result;
    }
public:
    int superPow(int a, vector<int>& b) {
        if (b.empty()) return 1;
        int cur = b.back();
        b.pop_back();
        return powmod(superPow(a, b), 10) * powmod(a, cur) % base;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,793评论 0 33
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,024评论 2 36
  • 工作中,我们往往偏爱能够以简练的语言陈述事情,解决问题的人,也喜欢与沟通能力强的人合作,因为他们善于发现问...
    Silvia花花阅读 501评论 0 2
  • 我一直用烟和啤酒来释放生命中那些不可承受之重 每当酒醒以后 我又穿上自己笔挺的西装与这个肮脏的世界背道而驰
    宜宾书生阅读 235评论 1 1
  • 有天下班高峰,在地铁站的全家买了一份关东煮,端到地铁站台,站在一个垃圾桶旁边吃了起来。 过了一会,来了一个同样捧着...
    塞利格曼的狗阅读 355评论 0 0