zoukankan      html  css  js  c++  java
  • 算法——二分法实现sqrt

    public class Solution {
        public double mySqrt(double n, double accuracy) {
            double mid = n/2.0;
            double left = 0.0;
            double right = n;
            double temp;
            while (left<right) {
                temp=(mid-n/mid)*mid; // 这里是防止int越界,相当于mid^2-n
                if (temp >0 && temp<accuracy) {
                    return mid;
                }else if(mid > n/mid){
                    right = mid;
                }else{
                    left = mid;
                }
                mid = (left+right)/2.0;
            }
            return -1d;
        }
    
        public static void main(String[] args) {
            Solution solution = new Solution();
            System.out.println(solution.mySqrt(2, 1e-2));
        }
    }
  • 相关阅读:
    Java多线程
    SpringCloud
    Java 多线程
    MySQL
    MySQL
    SpringCloud
    SpringCloud
    SpringCloud
    SpringBoot
    Spring MVC
  • 原文地址:https://www.cnblogs.com/gaoquanquan/p/10852958.html
Copyright © 2011-2022 走看看