141. x的平方根

作者: 和蔼的zhxing | 来源:发表于2018-01-25 20:30 被阅读8次

    实现 int sqrt(int x) 函数,计算并返回 x 的平方根。
    样例:

    sqrt(3) = 1
    sqrt(4) = 2
    sqrt(5) = 2
    sqrt(10) = 3
    

    二分法

    再0到x之间找,找到一个n使得n2=x或者(n2<x&&(n+1)2>x),这样的n就是需要的,用二分法来实现,因为x2这个函数也是单调的。

     int sqrt(int x) {
            
            int beg=0;
            int end=x;
            int mid;
            while(beg<=end)
            {
                mid=beg+(end-beg)/2;
                if(pow(mid,2)==x||(pow(mid,2)<x&&pow(mid+1,2)>x))
                {
                    return mid;
                }
                else if(pow(mid,2)<x)
                    beg=mid+1;
                else
                    end=mid-1;
            }
            
            // write your code here
        }
    

    相关文章

      网友评论

        本文标题:141. x的平方根

        本文链接:https://www.haomeiwen.com/subject/dvrbaxtx.html