解题报告Leecode 372. 超级次方——Leecode每日一题系列
Posted 来老铁干了这碗代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告Leecode 372. 超级次方——Leecode每日一题系列相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode-cn.com/problems/super-pow/
题解汇总:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/
题目描述
你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。
示例 1:
输入:a = 2, b = [3]
输出:8
示例 2:
输入:a = 2, b = [1,0]
输出:1024
示例 3:
输入:a = 1, b = [4,3,3,8,5,2]
输出:1
示例 4:
输入:a = 2147483647, b = [2,0,0]
输出:1198
这道题就是快速幂模板题
快速幂详细解析:https://zhanglong.blog.csdn.net/article/details/108011760
class Solution
private:
static const int MOD = 1337;
public:
static int quickPow(int a, int b)
a %= MOD;
int ans = 1;
while (b)
if (b & 1)
ans = ((ans * a) % MOD);
a = ((a * a) % MOD);
b >>= 1;
return ans;
int superPow(int a, vector<int>& b)
if (b.empty()) return 1;
int p = b.back();
b.pop_back();
return quickPow(superPow(a, b), 10) * quickPow(a, p) % MOD;
;
以上是关于解题报告Leecode 372. 超级次方——Leecode每日一题系列的主要内容,如果未能解决你的问题,请参考以下文章