69. Sqrt(x)

Posted real1587

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了69. Sqrt(x)相关的知识,希望对你有一定的参考价值。

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.
 1 int mySqrt(int x) {
 2     int mid,low=1,high=x;
 3     if(x<2)
 4         return x;
 5     while(low<=high){
 6         //如果直接mid=(low+high)/2的话可能会溢出,数字够大的情况下 
 7         mid=low+(high-low)/2; 
 8         if(mid==x/mid)    break;
 9         else if(mid<x/mid)    low=mid+1;
10         else    high=mid-1;        
11     }
12     if(mid>x/mid)
13         return    mid-1;
14     else
15         return mid; 
16 }

 

以上是关于69. Sqrt(x)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode二分 | 牛顿迭代法69_Sqrt(x)

Leetcode 69. Sqrt(x)

69. Sqrt(x)

LeeCode from 0 —— 69. Sqrt(x)

69. Sqrt(x)

69. Sqrt(x)