题解 | #求平方根#

求平方根

http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c

算法题目中也提示了,就是用二分法求平方根。唯一需要注意的一点是防止加法和乘法的溢出。最简单的办法就是用 long 接收。这里将其改为除法

算法比较简单。运行时间 2ms 。内存 242 KB

class Solution {
public:
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    int sqrt(int x) {
        // write code here
        if(!x) return 0;
        int i = 0;
        int j = x;
        int s = (float)i/2 + (float)j/2;
        if(!s) s = 1;
        while(!(s<=x/s && (s+1)>x/(s+1))){
            if(s<x/s) i = s + 1;
            if(s>x/s) j = s - 1;
            s = (float)i/2 + (float)j/2;
            if(!s) s = 1;
        }
        return s;
    }
};
全部评论

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务