Super Pow问题及解法
2017-11-24 09:04
441 查看
问题描述:
our 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.
示例:
问题分析:
利用欧拉准则和递归的方法,即可求得答案。
这里简单说一下欧拉准则:ab % k = (a%k)(b%k)%k
过程详见代码:
class Solution {
public:
const int base = 1337;
int powmod(int a, int k)
{
a %= base;
int res = 1;
for (int i = 0; i < k; i++)
{
res = (res * a) % base;
}
return res;
}
int superPow(int a, vector<int>& b) {
if (b.empty()) return 1;
int last = b.back();
b.pop_back();
return powmod(superPow(a, b), 10) * powmod(a, last) % base;
}
};
our 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.
示例:
a = 2 b = [3] Result: 8
a = 2 b = [1,0] Result: 1024
问题分析:
利用欧拉准则和递归的方法,即可求得答案。
这里简单说一下欧拉准则:ab % k = (a%k)(b%k)%k
过程详见代码:
class Solution {
public:
const int base = 1337;
int powmod(int a, int k)
{
a %= base;
int res = 1;
for (int i = 0; i < k; i++)
{
res = (res * a) % base;
}
return res;
}
int superPow(int a, vector<int>& b) {
if (b.empty()) return 1;
int last = b.back();
b.pop_back();
return powmod(superPow(a, b), 10) * powmod(a, last) % base;
}
};
相关文章推荐
- Pow(x, n)问题及解法
- Super Ugly Number问题及解法
- 八皇后问题解法
- 约瑟夫问题的数学解法
- Solve the Equation问题及解法
- 约瑟夫环问题--递归解法的理解
- 第12周—项目5 迷宫问题之图深度优先遍历解法
- 最小路径覆盖问题poj2594&&poj1422(匈牙利解法)
- 最短带权路径问题的解法::Dijkstra & Floyd
- Word的脚注加方括号的问题解法
- 第十二周 项目5 迷宫问题之图深度优先遍历解法
- Heaters问题及解法
- 解决Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x 问题方法
- 0/1背包问题,java解法
- 关于最大连续子序列问题的解法
- Remove Linked List Elements问题及解法
- 一个大数据排序问题的巧妙解法
- 几个常见的DP问题及解法
- TSP问题的遗传算法解法
- LCA问题解法