zoukankan      html  css  js  c++  java
  • 用模重复平方法求b^n mod m

    package 模重复平方法;
    
    import java.math.BigInteger;
    import java.util.Scanner;
    
    /*
     * 要求:
     * 1编程实现模重复平方计算法
     */
    public class Ah {
    
    	public static void main(String[] args) {
    		BigInteger b,m,n;
    		Scanner sc=new Scanner(System.in);
    		System.out.println("请输入b");
    		b=sc.nextBigInteger();
    		System.out.println("请输入n");
    		n=sc.nextBigInteger();
    		System.out.println("请输入m");
    		BigInteger a=new BigInteger("1");
    	    m=sc.nextBigInteger();
    		String t1=n.toString(2);
    		int[] N=new int[t1.length()];
    		for(int i=0;i<=t1.length()-1;i++)
    		{
    			N[i]=Integer.parseInt(t1.substring(t1.length()-i-1,t1.length()-i));
    		}
    		
    		for(int j=0;j<=t1.length()-1;j++)
    		{
    			
    			if(j!=t1.length()-1)
    			{
    				if(N[j]==1)
    			       a=(a.multiply(b)).remainder(m);
    			    if(N[j]==0)
    				   a=a.remainder(m);
    			    b=(b.multiply(b)).remainder(m);
    			}
    			else
    			{
    				if(N[j]==1)
    				    a=(a.multiply(b)).remainder(m);
    				 if(N[j]==0)
    					a=a.remainder(m);
    			}
    				
    		}
    		System.out.println(a);//测试
    		
    
    		
    		
    
    	}
    
    }

  • 相关阅读:
    js5
    js4
    js(3)
    JS内容(2)
    html复习
    js介绍及内容(1)
    定位2
    position定位
    CSS
    列表及行块转变
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7470929.html
Copyright © 2011-2022 走看看