提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
查找BigInteger的平方根
import java.math.BigDecimal; import java.math.BigInteger; /** 来 自 时 代 J a v a 公 众 号 - N o w J a v a . c o m**/ public class Main { public static void main(String[] args) { String n = ""; BigInteger my2P100000 = new BigInteger("0"); BigInteger two = new BigInteger("2"); my2P100000 = two.shiftLeft(2000 - 1); System.out.println("Value of 2^2,000 " + my2P100000); System.out.println("Finding the Square Root of 2^2000"); String mys = my2P100000 + ""; n = (mys); int firsttime = 0; BigDecimal myNumber = new BigDecimal(n);// 来 自 时代Java公众号 BigDecimal g = new BigDecimal("1"); BigDecimal my2 = new BigDecimal("2"); BigDecimal epsilon = new BigDecimal("0.0000000001"); BigDecimal nByg = myNumber.divide(g, 9, BigDecimal.ROUND_FLOOR); BigDecimal nBygPlusg = nByg.add(g); BigDecimal nBygPlusgHalf = nBygPlusg.divide(my2, 9, BigDecimal.ROUND_FLOOR); BigDecimal saveg = nBygPlusgHalf; firsttime = 99; do { g = nBygPlusgHalf; nByg = myNumber.divide(g, 9, BigDecimal.ROUND_FLOOR); nBygPlusg = nByg.add(g); nBygPlusgHalf = nBygPlusg.divide(my2, 9, BigDecimal.ROUND_FLOOR); BigDecimal savegdiff = saveg.subtract(nBygPlusgHalf); if (savegdiff.compareT