大数开平方模板(牛顿迭代法):

import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Main {
    public static void main(String[] args){
        Scanner cin=new Scanner(System.in);
        String a;
        a=cin.next();
        BigInteger n=new BigInteger(a);
        if(n.toString().length()%2==0)
            a=a.substring(0,n.toString().length()/2+1);
        else
            a=a.substring(0,(1+ n.toString().length())/2);
        BigInteger x=new BigInteger(a);
        BigInteger Two=new BigInteger("2");
        if(a=="1"){
            System.out.println(1);
        }else{
            while(n.compareTo(x.multiply(x))<0){
                x=(x.add(n.divide(x))).divide(Two);
            }
            System.out.println(x);
        }
        cin.close();
    }
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

ZOJ4006 找规律+组合数 Previous
SG函数 Next