龟速乘
前言:
- 前言:
- 基本思想
- Code:
快速幂 --> 乘法 – > 乘方 (反复平方法) 龟速乘 --> 加法 – > 乘法
提高思维的思想:
对于每道题都要自己想清楚,这样做对不对
一定要去多整理,多去看一下不同题目的关系
(saber推荐一波 [狗头] )
.
基本思想不能直接去算两个数相乘,
(技巧|| 把qmi里面的乘法换成加法即可)
Code:#include
typedef long long LL;
LL qadd(LL a, LL b, LL p)
{
LL res = 0;
while (b)
{
if (b & 1) res = (res + a) % p;
a = (a + a) % p;
b >>= 1;
}
return res;
}
int main()
{
LL a, b, p;
scanf("%lld%lld%lld", &a, &b, &p);
printf("%lld\n", qadd(a, b, p));
return 0;
}