题解 | #求平方根#

求平方根

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

相关推荐

身边有人上海、深圳&nbsp;6、7k&nbsp;都去了,真就带薪上班了。
程序员小白条:木的办法, 以后越来越差,还是家附近宅着吧,毕业的人越来越多,岗位都提供不出来,经济又过了人口红利期
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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