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);//测试
    		
    
    		
    		
    
    	}
    
    }

  • 相关阅读:
    Bootstrap/Font-Awesome/sweetalert插件
    网络编程
    异常处理
    再看属性查找
    元类
    面向对象中的一些内置方法
    反射
    内置函数
    绑定方法与非绑定方法
    多态与鸭子类型
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7470929.html
Copyright © 2011-2022 走看看