lintcode程序员

141. x的平方根

2018-01-25  本文已影响8人  和蔼的zhxing

实现 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
    }
上一篇下一篇

猜你喜欢

热点阅读