首页 > 其他 > 详细

Sqrt(x)

时间:2014-06-10 06:49:24      阅读:398      评论:0      收藏:0      [点我收藏+]

题目

Implement int sqrt(int x).

Compute and return the square root of x.

方法一

使用二分查找,注意int的边界问题,使用除法。
    public int sqrt(int x) {
        if (x  <= 1) {
            return x;
        }
        int start = 0;
        int end = x;
        while (start <= end) {
            int median = start + (end - start) / 2;
            int temp = x / median;
            if (temp == median) {
                return median;
            } else if(temp < median) {
                end = median - 1;
            } else {
                start = median + 1;
            }
        }
        return end;
    }


方法二

使用牛顿迭代法。
    public int sqrt(int x) {
        double pre;
        double cur = 1;
        do {
            pre = cur;
            cur = (pre + x /pre) / 2.0;
        }while(Math.abs(cur - pre) > 0.00000001);
        return (int) cur;
    }


Sqrt(x),布布扣,bubuko.com

Sqrt(x)

原文:http://blog.csdn.net/u010378705/article/details/29651439

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!