long long int quick(int a,int b,int c)
{
int ans=1; //记录结果
a=a%c; //预处理,使得a处于c的数据范围之下
while(b!=0)
{
if(b&1) ans=(ans*a)%c; //如果b的二进制位不是0,那么我们的结果是要参与运算的
b>>=1; //二进制的移位操作,相当于每次除以2,用二进制看,就是我们不断的遍历b的二进制位
a=(a*a)%c; //不断的加倍
}
return ans;
}
快速幂取模算法代码
原创black_hole6 ©著作权
©著作权归作者所有:来自51CTO博客作者black_hole6的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:数数
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
接口幂等方案
接口幂等方案
ide 幂等 Express -
幂取模算法
二分幂取模算法#include<iostr
取模 返回结果 ios -
快速幂取模运算
数学原理:积的取余等于取余的积的取余。即:(a*b)%c=(a%c)*(b%c)%c解决问题:指数型数据取模,
javascript 数据 取模 -
数论--快速幂取模
数论计算中经常出现的一种运算就是求一个数的幂ab对另外一个数n个模的运算,即计算:ab mod n (a,b,n是正整数) 由于计算机只能表示有限
acm 数论 #include #define 分治法 -
快速幂取模计算 python
面试题 1+2+...+n 不用for循环等,题解中方法快速幂和快速乘法的知识盲点补充内容。快速幂:就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。求a的b次方幂。(a=3,b=11) 故做法:将b转成二进制,用i去循环b中的每一位,若该位置为1,那么就乘以
快速幂取模计算 python leetcode 1+2+..n 不用乘除法 按位与 迭代