大数开平方模板(牛顿迭代法):
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 协议 ,转载请注明出处!