java 快速求余

2025-10-31 22:44:14

1、算法描述:

参数:(底数,指数,指数位数,模数)

从高位开始计数

如果二进制位为一则乘以底数

否则平方进入下一轮

java 快速求余

2、代码:

public class Fastmod{    public static void main(String args[])    {        fastmod(Integer.parseInt(args[0]),Integer.parseInt(args[1]),Integer.parseInt(args[2]),Integer.parseInt(args[3]));    }    public static int fastmod(int base ,int exp,int extc,int mod)    {        int c=0;int d=1;        for(int i=extc;i>=0;i--)        {            c=c*2;            System.out.println(c);            d=(d*d)%mod;            if(getbit(exp,i)==1)            {                c++;                d=(d*base)%mod;            }            System.out.println(d);        }            return d;    }    public static int getbit(int p,int index)    {        for(int i=0;i<index;i++)        {            p=p>>>1;        }        return p%2;    }}

3、编译运行

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢