快速幂取模法

来源:互联网 发布:java8 javascript 编辑:程序博客网 时间:2024/05/21 00:47




代码详解

long long quickmod(long long a,long long b,long long m){    long long ans = 1;    while(b)//用一个循环从右到左遍历b的所有二进制位    {        if(b & 1)//判断此时b[i]的二进制位是否为1        {            ans = (ans * a) % m;//乘到结果上            b--;//把该为变0        }        b /= 2;//每次取出b的二进制的下一位,        a = a * a % m;    }    return ans;}


long long quickmod(long long a,long long b,long long m){    long long ans = 1;    while(b)//用一个循环从右到左遍历b的所有二进制位    {        if(b & 1)//判断此时b[i]的二进制位是否为1            ans = (ans * a) % m;//乘到结果上        b /= 2;//每次取出b的二进制的下一位,上一个代码-1再除以2和直接除以2效果一样        a = a * a % m;    }    return ans;}




0 0
原创粉丝点击