题目描述
求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。
输入
第一行a,第二行b,第三行p。
输出
一个整数,表示a*b mod p的值。
样例输入
复制样例数据 2
3
9
样例输出
6
思路:利用快速幂的思想,将b表示为b=c* 20+c* 21 +…+c2n (c=0||1 ;即二进制的形式),则ab=a* c* 20+a c 21 +…+a * c*2n ,每乘以一次就每取一次模;
#include <iostream>
using namespace std;
typedef long long ll;
ll Mod(ll a,ll b,ll mod

该博客介绍了一种解决64位整数乘法问题的方法,使用快速幂思想,通过将b转化为二进制表示,然后逐次进行乘法和取模操作,来计算a乘以b对p取模的结果。样例输入和输出展示了算法的应用。
最低0.47元/天 解锁文章
502

被折叠的 条评论
为什么被折叠?



