zoukankan      html  css  js  c++  java
  • 大数开根号java模板

    利用逼近的思路直接二分开方找出值

     1 package lanqiao;
     2 
     3 import java.math.BigInteger;
     4 import java.util.Scanner;
     5 public class Main {
     6 
     7     static BigInteger cal(BigInteger x){
     8         BigInteger l = BigInteger.ONE ;
     9         BigInteger r = x ;
    10         BigInteger temp = BigInteger.ZERO ;
    11         while(!l.equals(r)){
    12             BigInteger mid = (l.add(r)).divide(BigInteger.valueOf(2)) ;
    13             if(temp.compareTo(BigInteger.ZERO)!=0&&temp.compareTo(mid)==0){
    14                 break ;
    15             }else{
    16                 temp = mid ;
    17             }
    18             if(temp.compareTo(BigInteger.ZERO)==0){
    19                 temp = mid ;
    20             }
    21             if(mid.multiply(mid).compareTo(x)==1){
    22                 r=mid ;
    23             }else{
    24                 l=mid ;
    25             }
    26         }
    27         if(l.multiply(l).compareTo(x)==1){
    28             l=l.subtract(BigInteger.ONE) ;
    29         }
    30         return l;
    31         
    32     }
    33     public static void main(String[] args) {
    34         // TODO Auto-generated method stub
    35         Scanner in = new Scanner(System.in) ;
    36         
    37         while(in.hasNextBigInteger()){
    38             BigInteger n = in.nextBigInteger() ;
    39             
    40             
    41             BigInteger x = cal(n) ;
    42             System.out.println(x);
    43             
    44         }
    45     }
    46 
    47 }
  • 相关阅读:
    spring加载bean实例化顺序
    Java生成CSV文件实例详解
    JSch
    socket(一)
    Core Data
    运行时c函数
    ReactiveCocoa(RAC)
    先来个xmpp学习连接
    FMDB
    NSKeyedArchive(存储自定义对象)
  • 原文地址:https://www.cnblogs.com/Annetree/p/6664383.html
Copyright © 2011-2022 走看看