题解 | #求平方根#

求平方根

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;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务