zoukankan      html  css  js  c++  java
  • 69. Sqrt(x) (JAVA)

    Implement int sqrt(int x).

    Compute and return the square root of x, where x is guaranteed to be a non-negative integer.

    Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

    Example 1:

    Input: 4
    Output: 2
    

    Example 2:

    Input: 8
    Output: 2
    Explanation: The square root of 8 is 2.82842..., and since 
                 the decimal part is truncated, 2 is returned.
    
     
    • 用循环实现二分法
    • 用除法防止溢出 
    class Solution {
        public int mySqrt(int x) {
            int left = 1;
            int right = (x>>1) + 1;
            int mid = 1;
            while(left <= right){
                mid = left + ((right-left) >> 1);
                if(mid < x/mid){ //用除法防止溢出
                    left = mid+1;
                }
                else if(mid > x/mid){
                    right = mid-1;
                }
                else return mid;
            }
            return right;
        }
        
    }
  • 相关阅读:
    botzone Tetris2
    NOIP2017游记
    城乡联谊胡策会糊厕R3
    SRM 20
    AtCoder Regular Contest 082
    AtCoder Grand Contest 019
    复数模版
    SRM13
    NOI2017&&codeM2017游记
    java多线程编程
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/10912016.html
Copyright © 2011-2022 走看看