Leetcode 69. Sqrt(x)

题目

Implement int sqrt(int x).

Compute and return the square root of x.

分析

计算x的算术平方根。用二分依次对比大小,最后即可找到其算术平方根,不过要注意输入参数为int,因此我选用了0-100000范围,使用二分法依次平方与x比较,注意平方后会超过int的范围,因此需要使用long long类型。

int mySqrt(int x) {
    long long p=0,q=100000;
    while(p<q)
    {
        long long temp=(p+q)/2;
        if(temp*temp==x)
        {
            return temp;
        }
        else if(temp*temp<x)
        {
            p=temp+1;
        }
        else
        {
            q=temp-1;
        }
    }
    while(p*p>x)
    {
        p--;
    }
    return p;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容